在spark中使用python将以下结构的RDD转换为数据帧时遇到了困难。在
df1=[['usr1',('itm1',2),('itm3',3)], ['usr2',('itm2',3), ('itm3',5),(itm22,6)]]
转换后,我的数据帧应该如下所示:
^{pr2}$我最初考虑将上述RDD结构转换为以下内容:
df1={'usr1': {'itm1': 2, 'itm3': 3}, 'usr2': {'itm2': 3, 'itm3': 5, 'itm22':6}}
然后使用python的pandas模块pand=pd.DataFrame(dat2)
,然后使用spark_df = context.createDataFrame(pand)
将pandas数据帧转换回spark数据帧。但是,我认为,通过这样做,我将RDD转换为非RDD对象,然后再转换回RDD,这是不正确的。有人能帮我解决这个问题吗?在
有了这样的数据:
整理记录:
^{pr2}$转换为
DataFrame
:数据透视:
注意:Spark
DataFrames
设计用于处理较长且相对较薄的数据。如果您想生成宽列联表,DataFrames
就没有用了,特别是当数据密集并且您希望为每个特性保留单独的列时。在相关问题 更多 >
编程相关推荐