【发布时间】:2016-05-31 17:25:33
【问题描述】:
我在使用 python 将以下结构的 RDD 转换为 spark 中的数据帧时遇到了困难。
df1=[['usr1',('itm1',2),('itm3',3)], ['usr2',('itm2',3), ('itm3',5),(itm22,6)]]
转换后,我的数据框应如下所示:
usr1 usr2
itm1 2.0 NaN
itm2 NaN 3.0
itm22 NaN 6.0
itm3 3.0 5.0
我最初是想将上述 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,这是不正确的。有人可以帮我解决这个问题吗?
【问题讨论】:
-
这有什么不同,不包括列选择,from your previous question?
-
请注意,在我之前的问题中,我更关心为同一用户处理重复的“itms”(请参阅“如果还有一个类似上述元组的计数字段,即 ('itm1' ,3)如何将这个值 3 合并(或添加)到列联表(或实体项矩阵)的最终结果中”。由于给出的答案仍然不清楚(至少从我的角度来看),如果我是能够得到这个问题的解决方案,我可以关闭上一个问题的答案。
标签: python apache-spark tuples pyspark