如何将Spark Streaming Dataset [String]转换为DataFrame [Row]

时间:2018-06-28 19:33:56

标签: apache-spark spark-streaming spark-csv spark-avro

我有非标准的kafka格式消息 因此代码如下所示

 val df:Dataset[String] = spark
  .readStream
  .format("kafka")
  .option("subscribe", topic)
  .options(kafkaParams)
  .load()
  .select($"value".as[Array[Byte]])
  .map { v =>
    val e = MyAvroSchema.decodeEnvelope(v)
    val d = MyAvroSchema.decodeDatum(e)
    d 
  }

此时d是代表csv行的字符串,例如

2018-01-02,user8,campaing1,type6,...

假设我可以创建一个csvSchema:StructType

如何使用csvSchema将其转换为Dataframe [Row]? 一种复杂的情况是,模式的大小很大(大约85列),因此创建案例类或元组并不是一个真正的选择

0 个答案:

没有答案