我将表从Teradata导出到Hive .. teradata中的表有一个地址字段,其中包含换行符号(\ n)..最初我将表导出到Teradata挂载文件系统路径然后我正在加载将表放入hive ... teradata表和hive表之间的记录计数不匹配,因为新的行字符在hive中显示。
注意:我不想通过sqoop来处理这个数据我希望在从本地路径加载到hive时处理新行字符。
答案 0 :(得分:0)
在Hive中加载数据命令只将数据直接复制到hdfs表位置。
Hive分割新行的唯一原因是,如果您只定义了存储为TEXT的表,默认情况下使用新行作为记录分隔符,而不是字段分隔符。
要重新定义表格,您需要类似
的内容ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',' ESCAPED BY 'x'
LINES TERMINATED BY 'y'
其中,x和y有希望分别在包含新行和记录分隔符的字段周围转义字符
答案 1 :(得分:0)
我通过使用以下选项创建外部表来使其工作:
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001'
ESCAPED BY '\\'
STORED AS TEXTFILE;
然后,我为包含数据文件的目录创建了一个分区。 (我的表使用分区) 即
ALTER TABLE STG_HOLD_CR_LINE_FEED ADD PARTITION (part_key='part_week53') LOCATION '/ifs/test/schema.table/staging/';
注意:请确保在创建数据文件时,将'\'用作转义符。