gpt4 book ai didi

csv - 在 beeline hive 中导出为 csv

转载 作者:行者123 更新时间:2023-12-02 08:37:59 25 4
gpt4 key购买 nike

我正在尝试将我的 hive 表导出为 beeline hive 中的 csv。当我运行命令 !sql select * from database1 >/user/bob/output.csv 时,它给出语法错误。

此时我已使用以下命令成功连接到数据库。查询在控制台上输出正确的结果。

beeline -u 'jdbc:hive2://[databaseaddress]' --outputformat=csv

此外,不太清楚文件的最终位置。应该是hdfs中的文件路径正确吗?

最佳答案

当 hive 版本至少为 0.11.0 时,您可以执行:

INSERT OVERWRITE LOCAL DIRECTORY '/tmp/directoryWhereToStoreData' 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY "\n"
SELECT * FROM yourTable;

从 hive/beeline 将表存储到本地文件系统上的目录中。

<小时/>

或者,使用 beeline,将 SELECT 查询保存在 yourSQLFile.sql 中并运行:

beeline -u 'jdbc:hive2://[databaseaddress]' --outputformat=csv2 -f yourSQlFile.sql > theFileWhereToStoreTheData.csv 

此外,这会将结果存储到本地文件系统中的文件中。

<小时/>

从 hive 将数据存储到 HDFS 中的某个位置:

CREATE EXTERNAL TABLE output 
LIKE yourTable
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 'hfds://WhereDoYou/Like';

INSERT OVERWRITE TABLE output SELECT * from yourTable;

然后您可以使用以下方法将数据收集到本地文件:

hdfs dfs -getmerge /WhereDoYou/Like

这是仅使用直线获取数据的另一个选项:

env HADOOP_CLIENT_OPTS="-Ddisable.quoting.for.sv=false" beeline -u "jdbc:hive2://your.hive.server.address:10000/" --incremental=true --outputformat=csv2 -e "select * from youdatabase.yourtable" 
<小时/>

致力于:

Connected to: Apache Hive (version 1.1.0-cdh5.10.1)
Driver: Hive JDBC (version 1.1.0-cdh5.10.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.1.0-cdh5.10.1 by Apache Hive

关于csv - 在 beeline hive 中导出为 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39577036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com