【问题标题】:How to make a dataframe for kafka streaming using PySpark?如何使用 PySpark 为 kafka 流制作数据帧?
【发布时间】:2018-10-30 18:35:29
【问题描述】:

我使用的是 kafka 版本 2.11-1.0.1 和 Spark 版本 2.0.2。我必须为 kafka 响应制作一个数据框。 那么如何为 kafkaStream 制作数据框? 提前致谢

【问题讨论】:

  • 请展示您到目前为止尝试过的内容。
  • kvs = KafkaUtils.createStream(ssc, zkQuorum, "spark-streaming-consumer3", {topic: 1}) lines = kvs.map(lambda x: x[1]) @mayankagrawal 现在我想为此创建一个数据框,但我无法创建。

标签: apache-spark pyspark apache-kafka


【解决方案1】:

如你所说,

kvs = KafkaUtils.createStream(ssc, zkQuorum, "spark-streaming-consumer3", {topic: 1})
lines = kvs.map(lambda x: x[1])

这里,linesrddsdStream,而不是rdd 本身。因此,要获取数据帧,您必须将其转换为 dStream 的数据帧。 像这样的,

lines.foreachRDD(lambda rdd: rdd.toDF())

【讨论】:

  • lines.foreachRDD(lambda rdd: rdd.toDF()) 此行抛出以下错误 AttributeError: 'RDD' object has no attribute 'toDF'
  • 为此,您还必须创建一个SQLContext,例如sql = SQLContext(sc)
  • 好的,但是这个SqlContext怎么用呢?
  • 您不必在任何地方使用它。数据框只能存在于 SQLContext 中。这就是你需要它的原因。
  • 你觉得这个答案有用吗?
猜你喜欢
  • 2018-03-21
  • 1970-01-01
  • 2020-10-06
  • 2018-06-24
  • 2021-02-09
  • 1970-01-01
  • 2023-01-27
  • 1970-01-01
  • 2021-05-21
相关资源
最近更新 更多