我正在尝试将配置单元表导出为直线配置单元中的csv。当我运行命令时 !sql select * from database1 > /user/bob/output.csv 它给了我语法错误。此时,我已使用以下命令成功连接到数据库。查询在控制台上输出正确的结果。
!sql select * from database1 > /user/bob/output.csv
beeline -u 'jdbc:hive2://[databaseaddress]' --outputformat=csv
另外,也不太清楚文件的结尾。它应该是hdfs中的文件路径,对吗?
wfveoks01#
跟踪对我有用
hive --silent=true --verbose=false --outputformat=csv2 -e "use <db_name>; select * from <table_name>" > table_name.csv
使用beeline的一个优点是,如果在配置单元节点上运行,则不必提供主机名或用户/pwd。当某些列的字符串值带有逗号时,tsv(制表符分隔)工作得更好
hive --silent=true --verbose=false --outputformat=tsv -e "use <db_name>; select * from <table_name>" > table_name.tsv
jjjwad0x2#
csv输出格式:
$ beeline -u jdbc:hive2://192.168.0.41:10000/test_db -n user1 -p password**--outputformat=csv2**-e "select * from t1";
自定义分隔符的输出格式:
$ beeline -u jdbc:hive2://192.168.0.41:10000/test_db -n user1 -p password**--outputformat=dsv****--delimiterForDSV='|'**-e "select * from t1";
在后台运行命令并重定向到文件:
$nohup `$ beeline -u jdbc:hive2://192.168.0.41:10000/test_db -n user1 -p password --outputformat=csv2 -e "select * from t1"; > output.csv 2> log` &
引用URL:https://dwgeek.com/export-hive-table-into-csv-format-using-beeline-client-example.html/httpshttp://dwgeek.com/hiveserver2-beeline-command-line-shell-options-examples.html/
0h4hbjxa3#
当配置单元版本至少为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查询保存在sqlfile.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
fkvaft9z4#
您可以使用此命令将输出保存为csv格式 beeline :
beeline
beeline -u 'jdbc:hive2://bigdataplatform-dev.nam.nsroot.net:10000/;principal=hive/bigdataplatform-dev.net@NAMUXDEV.NET;ssl=true' --outputformat=csv2 --verbose=false --fastConnect=true --silent=true -f $query_file>out.csv
将sql查询文件保存到$query\u文件中。结果将显示在out.csv中。我这里有一个完整的例子:Hive蜂蜜
4条答案
按热度按时间wfveoks01#
跟踪对我有用
使用beeline的一个优点是,如果在配置单元节点上运行,则不必提供主机名或用户/pwd。
当某些列的字符串值带有逗号时,tsv(制表符分隔)工作得更好
jjjwad0x2#
csv输出格式:
自定义分隔符的输出格式:
在后台运行命令并重定向到文件:
引用URL:
https://dwgeek.com/export-hive-table-into-csv-format-using-beeline-client-example.html/httpshttp://dwgeek.com/hiveserver2-beeline-command-line-shell-options-examples.html/
0h4hbjxa3#
当配置单元版本至少为0.11.0时,可以执行:
从hive/beeline将表存储到本地文件系统的目录中。
或者,使用beeline,将select查询保存在sqlfile.sql中并运行:
这也会将结果存储到本地文件系统中的一个文件中。
从hive将数据存储到hdfs中:
然后可以使用以下方法将数据收集到本地文件:
这是仅使用直线获取数据的另一个选项:
工作内容:
fkvaft9z4#
您可以使用此命令将输出保存为csv格式
beeline
:将sql查询文件保存到$query\u文件中。
结果将显示在out.csv中。
我这里有一个完整的例子:Hive蜂蜜