我尝试使用以下查询将配置单元表写入hdfs文件
insert overwrite directory '<HDFS Location>' select customerid,'\t' ,f1,',', f2,',', f3,',', f4,',', f5 from sd_cust_product_recomm_all_emailid_model2 WHERE EMAILID IS NOT NULL;
我正在获取文件中的utf和空格。输出如下:
customer1\t^Af1^A,^Af2^A,^Af3^A,^Af4^A,^Af5^A,
我需要以下格式的输出
customer1/tf1,f2,f3,f4,f5
customer2/tf1,f2,f3,f4,f5
没有空格和utf
谢谢你的帮助
1条答案
按热度按时间14ifxucb1#
默认分隔符是问题。写入文件系统的数据被序列化为文本,列之间用^a分隔。通过显式地提到字段分隔符(逗号)和行分隔符(\n),您可以解决这个问题。
插入覆盖目录“[hdfs location]”行格式分隔字段,终止于“,”行,终止于“\n”select customerid,“\t”,f1,f2,f3,f4,f5 from sd \u cust \u product \u recomm \u all \u emailid \u model2 where emailid is not null;