我需要将配置单元查询结果以 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 部分文件下载到单个本地文件中