jupyter笔记本:sparks的printt()函数不打印

xvw2m8pv  于 2021-06-06  发布在  Kafka
关注(0)|答案(1)|浏览(370)

我遵循这个教程:用python和kafka开始spark流
我正在把代码复制粘贴到我的jupiter笔记本(python3)上。
在cmd 7他们去:

parsed.count().map(lambda x:'Tweets in this batch: %s' % x).pprint()

但它什么也没印出来。
我不知道数据集中是否真的有一些数据,但是count()应该返回一些数字,即使它是零,不是吗?
我对jupyter笔记本完全陌生。
整个代码:


# 1

import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-streaming-kafka-0-8_2.11:2.0.2 pyspark-shell'

# 2

from pyspark import SparkContext
from pyspark.streaming import StreamingContext
from pyspark.streaming.kafka import KafkaUtils
import json

# 3

sc = SparkContext(appName="PythonSparkStreamingKafka_RM_01")
sc.setLogLevel("WARN")

# 4

ssc = StreamingContext(sc, 60)

# 5

kafkaStream = KafkaUtils.createStream(ssc, 'cdh57-01-node-01.moffatt.me:2181', 'spark-streaming', {'twitter':1})

# 6

parsed = kafkaStream.map(lambda v: json.loads(v[1]))

# 7

parsed.count().map(lambda x:'Tweets in this batch: %s' % x).pprint()

我试过:

import sys
from importlib import reload
reload(sys)

但没用。我设法打印出其他东西,例如,如果我只是在一个单元格中键入“hello world”。

ifsvaxew

ifsvaxew1#

在您的代码之后使用:

ssc.start()
ssc.awaitTermination()

相关问题