我正在尝试使用以下查询将hive表写入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
感谢您的帮助
答案 0 :(得分:1)
默认分隔符是问题。写入文件系统的数据被序列化为文本,列由^ A分隔。 通过明确提及字段分隔符(逗号)和行分隔符(\ n),您可以解决此问题。
插入覆盖目录'[HDFS Location]'ROW FORMAT DELIMITED 字段终止于','由'\ n'选择终止的线路 customerid,'\ t',f1,f2,f3,f4,f5来自 sd_cust_product_recomm_all_emailid_model2 WHERE EMAILID不为空;