我有这个问题:
WARN CachedKafkaConsumer:CachedKafkaConsumer未运行 UninterruptibleThread。当CachedKafkaConsumer的方法时,它可能会挂起 由于KAFKA-1894而被打断
我实现了自己的基于UDF的功能,以便在Protobuf上反序列化Kafka的消息:
import Messages_Protobuf #My Messages_Protobuf.py
from pyspark.sql.functions import udf
def message_proto(value):
m = Messages_Protobuf.TrackingMessage()
m.ParseFromString(value)
proto_json = {"id_req": m.id_req,
"is_after": m.is_after,
"type": m.type}
return(proto_json)
schema = StructType() \
.add("id_req", StringType()) \
.add("is_after", StringType()) \
.add("type", StringType())
proto_impressions_udf = udf(message_proto, schema)
我的ReadStream查询:
query = stream \
.select(col("value")) \
.select((self.proto_function("value")).alias("value_udf")) \
.select("valued_udf.id_req","valued_udf.is_after", "valued_udf.type")
换句话说,我想使用Structured Streaming在Parquet文件上编写流,我在Protobuf上有我所有的Kafka消息,但我想编写反序列化的Parquet文件。