我需要在 Spark Streaming 中将 org.apache.spark.rdd.RDD[Array[Byte]] 转换为 Array[Byte]

I need to convert org.apache.spark.rdd.RDD[Array[Byte]] to Array[Byte] in Spark Streaming

我正在尝试通过 kafka 将 json 文件解析为 spark 流。

我写了一个需要 Array[Byte] 的函数。

stream.foreachRDD(rdd=>
    parseAVROToString(rdd)
)

ssc.start

要使用 parseAVROToString,我需要 Array[Byte]。 我收到以下错误消息:

found   : org.apache.spark.rdd.RDD[Array[Byte]] required: Array[Byte] parseAVROToString(rdd)

你可以试试这个:

stream.foreachRDD(rdd => {
  rdd.foreach(record = > parseAVROToString(record))
})

foreachRDD是一个输出操作,用于将下划线rdds保存到外部文件或数据库。我认为 stream.transform 可能对您有用。