标签:transpose python apache-spark dataframe pyspark
我有一个具有以下结构的数据帧df:
+-----+-----+-----+-------+
| s |col_1|col_2|col_...|
+-----+-------------------+
| f1 | 0.0| 0.6| ... |
| f2 | 0.6| 0.7| ... |
| f3 | 0.5| 0.9| ... |
| ...| ...| ...| ... |
我想计算这个数据帧的转置,所以它看起来像
+-------+-----+-----+-------+------+
| s | f1 | f2 | f3 | ...|
+-------+-------------------+------+
|col_1 | 0.0| 0.6| 0.5 | ...|
|col_2 | 0.6| 0.7| 0.9 | ...|
|col_...| ...| ...| ... | ...|
我绑定了这两个解决方案,但它返回的数据帧没有指定的used方法:
方法1:
for x in df.columns:
df = df.pivot(x)
方法2:
df = sc.parallelize([ (k,) + tuple(v[0:]) for k,v in df.items()]).toDF()
我怎样才能解决这个问题.
解决方法:
如果数据足够小以进行转置(不使用聚合转动),您只需将其转换为Pandas DataFrame即可:
df = sc.parallelize([
("f1", 0.0, 0.6, 0.5),
("f2", 0.6, 0.7, 0.9)]).toDF(["s", "col_1", "col_2", "col_3"])
df.toPandas().set_index("s").transpose()
s f1 f2
col_1 0.0 0.6
col_2 0.6 0.7
col_3 0.5 0.9
如果它为此大,Spark将无济于事. Spark DataFrame按行分配数据(尽管本地使用柱状存储),因此单个行的大小仅限于本地内存.
标签:transpose,python,apache-spark,dataframe,pyspark 来源: https://codeday.me/bug/20190823/1698938.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。