pyspark.sql.types.Row 列出

Posted

技术标签:

【中文标题】pyspark.sql.types.Row 列出【英文标题】:pyspark.sql.types.Row to list 【发布时间】:2018-05-09 14:04:02 【问题描述】:

我的初始数据集是:

'ID': [Row(userid=17562323, gross_merchandise_value=6072210944, country=u'ID'), Row(userid=29989283, gross_merchandise_value=4931252224, country=u'ID')]

dict值的类型是pyspark.sql.types.Row

如何将 dict 转换为 userid 列表?如下:

[17562323, 29989283],

只需获取用户 ID 列表。

【问题讨论】:

我想你在这里有答案***.com/a/39467501/2799214 相关/可能的骗子:Convert rows into Dictionary in pyspark、Collecting the result of PySpark Dataframe filter into a variable 和 Check if two pyspark Rows are equal TL;DR:您可以像访问字典一样访问pyspark.sql.Row 的元素。所以在你的情况下你想要[value['userid'] for value in myDict['ID']] 直接阅读rdd可能更方便:df.rdd.map(lambda r: row.userid).collect() 谢谢你,问题解决了。我使用 ***.asDict()['userid'] for old_row_list 来获取新的用户 ID 列表 【参考方案1】:

首先谢谢你,问题解决了。我使用 old_row_list 中的 row_ele.asDict()['userid'] 来获取 new_userid_list

【讨论】:

以上是关于pyspark.sql.types.Row 列出的主要内容,如果未能解决你的问题,请参考以下文章

列出 N 以下所有素数的最快方法

按用户列出的SVN日志

在Windows上的python 2.7中列出具有Unicode名称的文件

基础命令行

列出数据库中所有存储的进程

LINUX命令里需要输入的-l ,-p,-P,-v,-V,-S,-s,-f,-q,-x等,都是啥功能啊