Apache Drill:如何查询Parquet文件并将结果输出到CSV文件

时间:2018-10-02 23:14:48

标签: csv parquet apache-drill

这是我面临的情况。

环境:台式机 作业系统:Windows 7 已安装Apache Drill

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_111
sqlline.bat -u "jdbc:drill:zk=local"

得到了钻探提示

0: jdbc:drill:zk=local> !set outputformat csv
0: jdbc:drill:zk=local> !record "C:\Input\CSV\test_CSV.csv"
0: jdbc:drill:zk=local> select * from dfs.`C:\Input\CSV\test_Parquet.parquet` limit 1;
0: jdbc:drill:zk=local> !record

输出

Saving all output to "C:\Input\CSV\test_CSV.csv". Enter "record" with no arguments to stop it.
'field1','field2','field3','field4','field5','field6'
'B','9876','54321','123','KOHL'S CORPORATION, MEN','BOOK'

我想要什么:

  • 用双引号引起来的值,而不是单引号
  • 即使在值用双引号引起来的情况下也尝试!set outputformat txt

    我读到还有其他方法可以将镶木地板文件转换为csv,但好奇地知道如何使用Apache演练来做到这一点。

  • 2 个答案:

    答案 0 :(得分:0)

    Apache Drill可以使用CTAS命令[1]创建csv文件。默认输出格式为镶木地板,因此您必须使用store.format会话选项[2]进行更改,但是我怀疑它是否可以解决双引号问题。

    [1] https://drill.apache.org/docs/create-table-as-ctas/

    [2] https://drill.apache.org/docs/create-table-as-ctas/#alter-session-command

    答案 1 :(得分:0)

    要使用SqlLine在双引号中存储数据,您需要在进行记录之前指出csv引号字符:

    !set csvquotecharacter '"'