如何将HiveQL查询的结果输出到逗号分隔或管道分隔文件?

时间:2014-09-15 08:04:22

标签: hadoop hive hiveql

假设我们有一个像这样的HIVE表

 name id age

 jones 12 34
 george joseph 13 45
 bush 15 23

现在我想将此hive表输出到csv和管道分隔文件。 我按照How do I output the results of a HiveQL query to CSV?中的步骤进行了操作。

 hive -e 'select books from table' | sed 's/[[:space:]]\+/,/g' > /home/lvermeer/temp.csv

但它正在研究这些

      name    id     age
      jones   12     34
      george  joseph 13  45
      bush    15     23

我希望乔治约瑟夫在一列中。由于乔治约瑟夫包含中间空格,因此输出到下一列。如何解决这个问题??

2 个答案:

答案 0 :(得分:0)

如果您的查询不包含join或so criterias,那么您可以轻松地从相应的HDFS位置获取数据。根据提到的分隔符,数据将是(管道)分开的。

答案 1 :(得分:0)

Hive列由' \ t'分隔,假设" george"和"约瑟夫"由空格分隔,你没有任何问题。您可以使用 vim 查看分隔符,只需输入:set list即可。标签将标记为^I

要查看输出文件,您可以使用,例如,LibreOffice Calc,但您必须确定,您仅使用分隔符作为分隔符,而不是空格