我正在尝试从HDP中的beeline从蜂巢表创建一个csv文件。 csv文件中的所有值都应包含双引号。我正在使用以下语法
直线-u'jdbc:hive2://主机名'--outputformat = csv2 -f scriptfile.sql> outputfile.csv
这是创建没有双引号的csv文件。 我尝试使用outputformat = csv来创建仅单引号。
我知道我可以使用 awk -F“'?,'?” -v OFS ='“,”'{{$ 1 = $ 1; gsub(/ ^。| $ /,“ \”“)} 1'outputfile.csv 以获得双引号,但是从直线语法本身来看得到双引号。
请让我知道。
谢谢, 库玛
答案 0 :(得分:1)
使用concat('“',col,'”')获得双引号。
针对您的HQL脚本:
select
concat('"',col1,'"'),
concat('"',col2,'"'),
...
然后,您可以运行命令。
beeline -u <connectionstring> --outputformat=csv2 -f scriptfile.sql > out.csv
有点笨拙,但是有效。
您还可以查看this answer,使用OpenCSVSerde创建一个表,该表允许使用自定义定界符,例如双引号。