【问题标题】:HADOOP HIVE - Is there a command for setting csv outputHADOOP HIVE - 是否有设置 csv 输出的命令
【发布时间】:2017-12-14 17:59:35
【问题描述】:

HIVE 中是否有命令行可用于定义输出文件为 CSV 的格式?

类似下面的例子吗?

set hive.resultset.use.unique.column.names=false;

编辑 - 为 12/18 的进一步上下文添加了以下内容

我正在使用的终端窗口在通过脚本运行“导出”时具有命令行的预定义设置。以下是它的命令:

set hive.metastore.warehouse.dir=/idn/home/user;
set mapred.job.queue.name=root.gmis;
set hive.exec.scratchdir=/axp/hivescratch/user;
set hive.resultset.use.unique.column.names=false;
set hive.cli.print.header=true;
set hive.groupby.orderby.position.alias=true;

与下面的冗长字符串相比,我可以添加另一个命令吗?我在另一个蜂巢终端中使用以下内容;但它的 SQL 不同(?)。

cloak-hive -e "INSERT OVERWRITE LOCAL DIRECTORY '/adshome/user/VS_PMD' ROW FORMAT DELIMITED FIELDS TERMINATED BY ','

【问题讨论】:

标签: hadoop hive output


【解决方案1】:

您可以将输出文件格式提到 csv 参考以下示例命令。注意,beeline 和 hive 是一样的

beeline -u jdbc:hive2://localhost:10000/default --silent=true --outputformat=csv2 -e "select * from sample_07 limit 10" > out.txt

【讨论】:

    【解决方案2】:

    关于 Apache 文档, https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Writingdataintothefilesystemfromqueries

    标准语法:

    INSERT OVERWRITE [LOCAL] DIRECTORY directory1
    [ROW FORMAT row_format] [STORED AS file_format] 
    SELECT ... FROM ...
    

    INSERT OVERWRITE LOCAL DIRECTORY directory1 
    ROW FORMAT DELIMITED 
    STORED AS TEXTFILE 
    SELECT ... FROM ...;
    

    也许需要在 ROW FORMAT 上做一些工作才能达到预期的效果。 另请注意,LOCAL 值是指本地文件系统。

    【讨论】:

    • 这会创建多个文件,而不是单个 CSV
    • @cricket_007 有没有办法用不同的方法避免多个 CSV 文件?
    • @GarageKid 是的,使用其他答案
    猜你喜欢
    • 2020-02-07
    • 1970-01-01
    • 2021-06-03
    • 2022-01-24
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多