【问题标题】:Apache Drill : How to Query a Parquet file and output the result into a CSV fileApache Drill:如何查询 Parquet 文件并将结果输出到 CSV 文件中
【发布时间】:2019-03-08 03:06:32
【问题描述】:

这是我面临的一种情况。

环境:桌面 操作系统:Windows 7 安装 Apache Drill

设置 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

输出

将所有输出保存到“C:\Input\CSV\test_CSV.csv”。输入不带参数的“记录”以停止它。 'field1','field2','field3','field4','field5','field6' 'B','9876','54321','123','KOHL'S CORPORATION, MEN','BOOK'

我想要什么:

  • 值用双引号而不是单引号括起来
  • 尝试了 !set outputformat txt 以及即使值在双引号中

    我读到还有其他方法可以将 parquet 文件转换为 csv,但很想知道如何使用 Apache Drill 来做到这一点。

  • 【问题讨论】:

    • 那么,所有的值都需要用双引号括起来吗?

    标签: csv parquet apache-drill


    【解决方案1】:

    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

    【讨论】:

      【解决方案2】:

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

      !set csvquotecharacter '"'
      

      【讨论】:

      • 谢谢,我试试这个。
      • 给我一个例外 0:jdbc:drill:zk=local> !set csvquotecharacter '"' java.lang.StringIndexOutOfBoundsException: 字符串索引超出范围:-1 at java.lang.String.substring (String.java:1967) 在 sqlline.SqlLine.dequote(SqlLine.java:1270) 在 sqlline.SqlLine.split(SqlLine.java:1283) 在 sqlline.SqlLine.split(SqlLine.java:1102) 在 sqlline.AbstractCommandHandler .matches(AbstractCommandHandler.java:65) 在 sqlline.SqlLine.dispatch(SqlLine.java:725) 在 sqlline.SqlLine.begin(SqlLine.java:621) ...
      • 看起来这是 SqlLine 中的一个错误。 Apache Drill 1.14.0 不使用最新版本的 SqlLine,但 Apache Drill 1.15.0 会。您可以从使用最新 SqlLine 1.5.0 版本的 master (1.15.0-SNAPSHOT) 构建 Apache Drill。
      • 是的,我们已经安装了 Drill 1.12.0。我将升级到 1.15 并希望它能够正常工作。
      • Apache Drill 1.15 版本计划在 11 月底发布。同时,您可以从源代码构建 SNAPSHOT 版本。
      猜你喜欢
      • 1970-01-01
      • 2017-12-31
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 2015-07-10
      • 2023-04-04
      • 1970-01-01
      相关资源
      最近更新 更多