我已安装Spark 2.1.0并已将Kafka连接到Spark Streaming。我使用python 3.5。 默认情况下,据我所知,Spark Streaming我使用RDD,但我想使用DataFrames。所以我将RDD转换为DF,但我无法使用它。显然,foreachRDD操作返回None。
我能够打印出DataFrame,但不能将其用于进一步的计算。
问题:
我想念什么?
kafkaStream = KafkaUtils.createStream(ssc, "10.0.26.44:2183",
'spark-streaming', {'topic': 1})
pipelined_rdd = kafkaStream.filter(lambda v: is_valid_json(v))
pipelined_rdd = pipelined_rdd.map(lambda v: parse_events(v))
pipelined_rdd.foreachRDD(convert_to_df)
其中函数convert_to_df()
def convert_to_df(rdd):
schema = StructType([
StructField("record_timestamp", FloatType(), True),
StructField("event_timestamp", StringType(), True)])
sqlContext.createDataFrame(rdd, schema = schema)
df.show(10)
#return df