Python Spark流:从数据流到数据帧

Python Spark流:从数据流到数据帧,python,pandas,apache-spark,dstream,Python,Pandas,Apache Spark,Dstream,在下面的代码片段中,我尝试将温度数据流(从卡夫卡接收)转换为数据帧 def main_process(time, dStream): print("========= %s =========" % str(time)) try: # Get the singleton instance of SparkSession spark = getSparkSessionInstance(dStream.context.getConf()) # Convert RDD[St

在下面的代码片段中,我尝试将温度数据流(从卡夫卡接收)转换为数据帧

def main_process(time, dStream):
print("========= %s =========" % str(time))

try:
    # Get the singleton instance of SparkSession
    spark = getSparkSessionInstance(dStream.context.getConf())

    # Convert RDD[String] to RDD[Row] to DataFrame
    rowRdd = dStream.map(lambda t: Row(Temperatures=t))

    df = spark.createDataFrame(rowRdd)

    df.show()

    print("The mean is: %m" % df.mean())
实际上,平均值从未计算过,我想这是因为“df”不是数据帧(?)

根据相关文档,我尝试使用
df=spark.createDataFrame(df.toPandas())
,但编译器无法识别“toPandas()”,并且转换从未发生

我是否在正确的道路上,如果是,我应该如何应用转换

或者也许我的方法是错误的,我必须以不同的方式处理数据流


提前谢谢你

这不是个好主意。为什么要这样?我需要将数据流中的数据输入到某些算法中,这些算法使用相对复杂的数学函数。所以我的第一个想法是将数据流转换成更灵活的东西,比如数据帧。我应该坚持使用RDD吗?Spark
DataFrame
正常(分布式)。熊猫
DataFrame
通常是不好的(不是分布式的,是驱动程序本地的)。这不是一个好主意。为什么要这样?我需要将数据流中的数据输入到某些算法中,这些算法使用相对复杂的数学函数。所以我的第一个想法是将数据流转换成更灵活的东西,比如数据帧。我应该坚持使用RDD吗?Spark
DataFrame
正常(分布式)。熊猫
DataFrame
通常是坏的(不是分布式的,是驱动程序本地的)。