簡體   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