1

我需要将配置单元查询结果以 csv 格式下载到本地文件路径。此外,列值应括在引号中,字段以逗号终止,文件应在第一行包含列标题。

任何人都可以帮助我以最佳方法实现这一目标吗?注意 - 查询通常返回超过 5M 行。

4

1 回答 1

0

最好的方法是使用您选择的数据创建一个配置单元表,如下所示。

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 部分文件下载到单个本地文件中

于 2017-11-29T17:45:18.823 回答