如何解析从PySpark中的字符串获取列表方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
在 PySpark 中是否有类似eval的功能。
我正在尝试将 Python 代码转换为 PySpark
我正在查询一个数据框,并且其中一列具有数据,如下所示,但采用字符串格式。
[{u'date': u'2015-02-08', u'by': u'abc@gg.com', u'value': u'NA'}, {u'date': u'2016-02-08', u'by': u'dfg@yaa.com', u'value': u'applicable'}, {u'date': u'2017-02-08', u'by': u'wrwe@hot.com', u'value': u'ufc'}]
假设“ x”是在数据框中保存此值的列。
现在,我想传递该字符串列“ x”并获取列表,以便可以将其传递给 mapPartition 函数。
我想避免迭代驱动程序上的每一行,这就是我这样想的原因。
在 Python 中使用 eval()函数(如果已使用):我得到以下输出:
x = "[{u'date': u'2015-02-08', u'by': u'abc@gg.com', u'value': u'NA'}, {u'date': u'2016-02-08', u'by': u'dfg@yaa.com', u'value': u'applicable'}, {u'date': u'2017-02-08', u'by': u'wrwe@hot.com', u'value': u'ufc'}]" list = eval(x) for i in list: print i
输出:(这也是我在 PySpark 中想要的)
{u'date': u'2015-02-08', u'by': u'abc@gg.com', u'value': u'NA'}
{u'date': u'2016-02-08', u'by': u'dfg@yaa.com', u'value': u'applicable'}
{u'date': u'2017-02-08', u'by': u'wrwe@hot.com', u'value': u'ufc'}
如何在 PySpark 中做到这一点?
实例扩展:
df.schema: StructType(List(StructField(id,StringType,true),StructField(recs,StringType,true)))
|id | recs | |ABC|[66, [["AB", 10]]] |XYZ|[66, [["XY", 10], ["YZ", 20]]] |DEF|[66, [["DE", 10], ["EF", 20], ["FG", 30]]]
我正试着把这些单子弄平
|id | like_id
|ABC|AB|
|XYZ|XY|
|XYZ|YZ|
|DEF|DE|
|DEF|EF|
|DEF|FG|
关于如何解析从PySpark中的字符串获取列表方法问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。