【问题标题】:Query hdfs with Spark Sql使用 Spark Sql 查询 hdfs
【发布时间】:2017-04-23 11:04:33
【问题描述】:

我在 hdfs 中有一个 csv 文件,如何使用 spark SQL 查询这个文件?例如,我想对特殊列进行选择请求,并将结果再次存储到 Hadoop 分布式文件系统中

谢谢

【问题讨论】:

    标签: hadoop apache-spark hdfs apache-spark-sql


    【解决方案1】:

    您可以通过创建 Dataframe 来实现。

    val dataFrame = spark.sparkContext
      .textFile("examples/src/main/resources/people.csv")
      .map(_.split(","))
      .map(attributes => Person(attributes(0), attributes(1).trim.toInt))
      .toDF()
    
    dataFrame.sql("<sql query>");
    

    【讨论】:

    • 你有 SparkSession,所以它是 Spark 2.0。为什么不使用内置的 CSV 解析器?
    【解决方案2】:
    1. 您应该创建一个 SparkSession。一个例子是here
    2. 加载 CSV 文件:val df = sparkSession.read.csv("path to your file in HDFS")
    3. 执行您的选择操作:val df2 = df.select("field1", "field2")
    4. 将结果写回:df2.write.csv("path to a new file in HDFS")

    【讨论】:

      猜你喜欢
      • 2015-05-28
      • 2015-04-30
      • 2020-10-09
      • 2020-04-12
      • 1970-01-01
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      相关资源
      最近更新 更多