python - 没有注册输出操作,所以在 PySpark 中没有执行任何操作
问题描述
我正在尝试将 Spark 与 Kafka 集成。我让 kafka 消费者有 json 数据。我想将 kafka 消费者与 Spark 结合起来进行处理。当我运行下面的代码错误是抛出。
bin\spark-submit --packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.0 test.py localhost:9092 maktest
我的 test.py 在下面
import sys
from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
if __name__ == "__main__":
sc = SparkContext(appName="PythonStreamingDirectKafkaWordCount")
ssc = StreamingContext(sc, 2)
brokers, topic = sys.argv[1:]
kvs = KafkaUtils.createDirectStream(ssc,[topic],{"metadata.broker.list": brokers})
lines = kvs.map(lambda x: x[1])
print (lines)
ssc.start()
ssc.awaitTermination()
我得到了下面的错误
18/12/10 16:41:40 INFO VerifiableProperties: Verifying properties
18/12/10 16:41:40 INFO VerifiableProperties: Property group.id is overridden to
18/12/10 16:41:40 INFO VerifiableProperties: Property zookeeper.connect is overridden to
<pyspark.streaming.kafka.KafkaTransformedDStream object at 0x000002A6DA9FE6A0>
18/12/10 16:41:40 ERROR StreamingContext: Error starting the context, marking it as stopped
java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute
at scala.Predef$.require(Predef.scala:224)
Traceback (most recent call last):
File "C:/Users/maws/Desktop/spark-2.2.1-bin-hadoop2.7/test.py", line 12, in <module>
ssc.start()
py4j.protocol.Py4JJavaError: An error occurred while calling o25.start.
: java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute
解决方案
您没有使用受支持的Spark Streaming DStream 输出操作。
对于 pyspark API,您应该使用:
pprint()
saveAsTextFiles(prefix, [suffix])
saveAsObjectFiles(prefix, [suffix])
saveAsHadoopFiles(prefix, [suffix])
foreachRDD(func)
print()
不能与 pyspark 一起使用,因此请确保在检查其他 Spark Streaming Examples for Scala 或 Java 时,更改为pprint()
推荐阅读
- vue.js - 如何使“在编辑器中打开”功能在 VueDevtools 中工作
- python - 将秒转换为分钟时出现 Tkinter ValueError?
- java - 为 TypedQuery 指定的类型不兼容,但 Hibernate 返回另一种类型
- html - HTML Div 在禁用它后会扭曲页面
- python - 在 Python 中使用 Plotly 中的滑块进行交互式线图
- c# - 将 Blazor 服务器部署到 localhost,默认登录页面 (cshtml) 错误
- camera - Native raspberry 64 OS raspivid:无法执行二进制文件
- mongodb - Mongo 根据文档集合中的另一个键计算多个文档中键的出现次数
- php - php html中的生日值
- python - 在 python 上使用正则表达式进行复杂的数据清理