【发布时间】:2017-11-29 15:08:38
【问题描述】:
我需要将 hive 查询结果以 csv 格式下载到本地文件路径。此外,列值应括在引号中,字段以逗号终止,文件应在第一行包含列标题。
谁能帮助我用最好的方法来实现这一点?注意 - 查询通常返回超过 5M 行。
【问题讨论】:
我需要将 hive 查询结果以 csv 格式下载到本地文件路径。此外,列值应括在引号中,字段以逗号终止,文件应在第一行包含列标题。
谁能帮助我用最好的方法来实现这一点?注意 - 查询通常返回超过 5M 行。
【问题讨论】:
最好的方法是使用您选择的数据创建一个配置单元表,如下所示。
CREATE EXTERNAL TABLE ramesh_csv (col1 INT, col2 STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = ",",
"quoteChar" = "\""
)
STORED AS TEXTFILE
LOCATION 'mylocation';
INSERT OVERWRITE TABLE ramesh_csv VALUES (1, 'TEST'), (2, 'TEST AGAIN');
在您的情况下,您将选择的记录插入到表中。
现在获取创建的 HDFS 文件。这将用逗号分隔,并用双引号括起来。
在下面查看我的输出
"1","TEST"
"2","TEST AGAIN"
您可以使用hdfs -getmerge hdfs://mylocation data.csv 将 hdfs 部分文件下载到单个本地文件中
【讨论】: