将hive表写入HDFS文件时删除空格和UTF

时间:2015-04-24 08:10:01

标签: hadoop utf-8 hive

我正在尝试使用以下查询将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

感谢您的帮助

1 个答案:

答案 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不为空;