繁体   English   中英

在数据块中以 stream dataframe 的形式获取 dbfs 文件

[英]Fetch dbfs files as a stream dataframe in databricks

我有一个问题,我需要在 Databricks 中为每个登陆 ADLS gen 2 存储的 CSV 文件创建一个外部表。

当我从 dbutils.fs.ls() output 获得一个流 dataframe 然后调用一个 function 在 forEachBatch() 中创建一个表时,我想到了一个解决方案。

我已经准备好 function,但我无法找到将 stream 目录信息转换为流式传输 Dataframe 的方法。有人知道如何实现吗?

请检查以下代码块。

package com.sparkbyexamples.spark.streaming
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}

object SparkStreamingFromDirectory {

  def main(args: Array[String]): Unit = {

    val spark:SparkSession = SparkSession.builder()
      .master("local[3]")
      .appName("SparkByExamples")
      .getOrCreate()

    spark.sparkContext.setLogLevel("ERROR")

    val schema = StructType(
      List(
        StructField("Zipcode", IntegerType, true),
        
      )
    )

    val df = spark.readStream
      .schema(schema)
      .json("Your directory")

    df.printSchema()

    val groupDF = df.select("Zipcode")
        .groupBy("Zipcode").count()
    groupDF.printSchema()

    groupDF.writeStream
      .format("console")
      .outputMode("complete")
      .start()
      .awaitTermination()
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM