Hadoop 配置单元:如何使用字符串文字分隔行

Hadoop 配置单元:如何使用字符串文字分隔行,hadoop,hive,Hadoop,Hive,这里需要帮助。 这与蜂巢有关 我有一个只有一行的文本文件,例如: JASON 29\SASHA 24\CHRISTINE 15\ROBERT 20\ 现在我需要在配置单元中创建一个表,它的行使用“\”(反斜杠)分隔,就像我插入上述行“JASON 29\SASHA 24…”中的数据一样,我希望在表中插入4行 换句话说,我希望自定义字符是行分隔符,而不是默认的“\n” 我写了DDL: CREATE TABLE newline_tab ( name STRING, age INT ) ROW F

这里需要帮助。 这与蜂巢有关

我有一个只有一行的文本文件,例如: JASON 29\SASHA 24\CHRISTINE 15\ROBERT 20\

现在我需要在配置单元中创建一个表,它的行使用“\”(反斜杠)分隔,就像我插入上述行“JASON 29\SASHA 24…”中的数据一样,我希望在表中插入4行

换句话说,我希望自定义字符是行分隔符,而不是默认的“\n”

我写了DDL:

CREATE TABLE newline_tab
(
 name STRING,
 age INT
)

ROW FORMAT DELIMITED  
FIELDS TERMINATED BY '\t'  
LINES TERMINATED BY '\\'  
STORED AS TEXTFILE;  
但是我无法创建表,并且我收到以下错误:

失败:SemanticException 9:20以结尾的行现在只支持换行符“\n”。在标记“”附近遇到错误\“”


任何帮助都将不胜感激:)

如果只支持“\n”,那么我认为没有比在文档中将“\”替换为“\n”更好的解决方案了。您使用的是什么版本和分布的hive?Hi Raj,我使用的是cdh5,hive版本为0.12.0。实际上,我有一个来自我们客户机的文档,其中有一个字符串“\”分隔行,他们希望将此文件数据加载到hive表中。这是一个巨大的文件。您可以使用简单的Unix命令将“\”替换为
\n
,然后使用
\n
作为行终止字符继续加载。否则,您必须编写一个自定义Serde来处理所选的行终止字符。有关创建Serde的更多信息,请参见@visakh Serdes NOT DECITIZE OF record。他需要一个自定义的
InputFormat
RecordReader
。如果只支持“\n”,那么我认为没有比在文档中用“\n”替换“\”更好的解决方案了。您使用的是什么版本和分布的hive?Hi Raj,我使用的是cdh5,hive版本为0.12.0。实际上,我有一个来自我们客户机的文档,其中有一个字符串“\”分隔行,他们希望将此文件数据加载到hive表中。这是一个巨大的文件。您可以使用简单的Unix命令将“\”替换为
\n
,然后使用
\n
作为行终止字符继续加载。否则,您必须编写一个自定义Serde来处理所选的行终止字符。有关创建Serde的更多信息,请参见@visakh Serdes NOT DECITIZE OF record。他需要一个自定义的
InputFormat
RecordReader
。对您的代码稍作解释将不胜感激!对您的代码稍作解释将不胜感激!
CREATE TABLE IF NOT EXISTS employee ( eid int, name String,
salary String, destination String)
COMMENT ‘Employee details’
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
LINES TERMINATED BY ‘\n’
STORED AS TEXTFILE;