簡體   English   中英

從 1 個 kafka 主題中獲取 2 個不同的數據到 2 個數據幀中

[英]Get 2 different data from 1 kafka topic into 2 dataframes

我有這樣的作業:

  1. 使用 python 讀取 2 個文件夾 song_data 和 log_data 中的 json 個文件。
  2. 使用 Python Kafka 將 song_data 和 log_data 文件類型的混合發布到 Kafka 主題中。
  3. 使用 Pyspark 消費來自上述 Kafka 主題的數據。
  4. 使用 Stream 處理來消費來自 song_data 的消息並創建 2 個數據幀,songs 和 artitst。 並從 log_data 生成 dataframe 作為用戶、時間。
  5. 從維度表的數據幀創建歌曲。

我在從 1 個主題讀取不同文件時遇到問題,2 個文件夾包含 json 文件,但 1 個是歌曲數據,1 個是日志。 我怎樣才能從 1 個主題中獲取自己的數據?

不清楚為什么不能只使用兩個主題,每個文件一個。 特別是如果它們沒有匹配的模式,這對 SparkSQL 來說很重要。

我怎樣才能從 1 個主題中獲取自己的數據?

它從第 2 步開始。

以這樣的格式將數據寫入您的單個主題( content僅用於示例目的)

{"type": "song", "content": "..."}

或者

{"type": "log", "content": "..."}

然后,在 SparkSQL 中,你可以做這樣的事情

df = spark.readStream.format("kafka")... # TODO: apply a schema to the data to get a "type" column
song_data = df.where(df("type") == "song").select("content")
log_data = df.where(df("type") == "log").select("content")

您也可以在 Python-Kafka 中進行相同的過濾,而不需要數據幀或 Spark 環境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM