【问题标题】:How to query CSV using pure spark sql如何使用纯 spark sql 查询 CSV
【发布时间】:2022-05-12 20:51:02
【问题描述】:

我希望从 spark-sql CLI 获得输出。但是数据是用“\t”分隔的CSV。有没有办法使用纯 sql 做到这一点?

cmd 喜欢:spark-sql -e 'select * from csv.`xxx` where xxx=xxx'

唯一的方法是先创建一个临时视图,然后查询该视图?

【问题讨论】:

    标签: apache-spark-sql command-line-interface


    【解决方案1】:

    您可以使用所有选项为现有数据创建表,例如:

    create table if not exists table_name
    using csv
    OPTIONS (header "true", inferSchema "true", path ".....csv");
    

    并在下一次调用中查询它。或者您可以在.sql 文件中包含此语句,然后通过-i 选项提供文件名,以便在您的select 查询之前执行。

    【讨论】:

      【解决方案2】:

      此命令使用分隔符“t”并创建表

      spark-sql -e 'create table if not exists benchmark_eraseme
      using csv 
      OPTIONS (header "true", delimiter "\t", path "/home/ec2-user/demo/customer_benchmark.csv"); 
      select * from benchmark_eraseme;'
      

      文件:

      cat ~/demo/customer_benchmark.csv
      id_customer     description
      49      client_1
      8       Benchmark Gold
      6       Benchmark Silver
      7       Benchmark Regular
      

      输出:

      Time taken: 8.467 seconds
      49      client_1
      8       Benchmark Gold
      6       Benchmark Silver
      7       Benchmark Regular
      Time taken: 0.548 seconds, Fetched 4 row(s)
      

      我尝试使用临时视图,但至少在 Spark 3.2.1 版本中无法从 CSV 文件创建临时视图。

      【讨论】:

        猜你喜欢
        • 2015-05-28
        • 2017-04-17
        • 2020-01-27
        • 2017-04-23
        • 2018-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多