從PySpark中的字符串獲取列表方法講解
在 PySpark 中是否有類似eval的功能。
我正在嘗試將 Python 代碼轉(zhuǎn)換為 PySpark
我正在查詢一個數(shù)據(jù)框,并且其中一列具有數(shù)據(jù),如下所示,但采用字符串格式。
[{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'}]
假設(shè)“ x”是在數(shù)據(jù)框中保存此值的列。
現(xiàn)在,我想傳遞該字符串列“ x”并獲取列表,以便可以將其傳遞給 mapPartition 函數(shù)。
我想避免迭代驅(qū)動程序上的每一行,這就是我這樣想的原因。
在 Python 中使用 eval()函數(shù)(如果已使用):我得到以下輸出:
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|
到此這篇關(guān)于從PySpark中的字符串獲取列表方法講解的文章就介紹到這了,更多相關(guān)如何從 PySpark 中的字符串獲取列表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python socket實現(xiàn)的簡單通信功能示例
這篇文章主要介紹了Python socket實現(xiàn)的簡單通信功能,結(jié)合實例形式分析了Python socket通信的相關(guān)概念、原理、客戶端與服務(wù)器端實現(xiàn)技巧以及socketserver模塊多并發(fā)簡單實現(xiàn)方法,需要的朋友可以參考下2018-08-08用TensorFlow實現(xiàn)lasso回歸和嶺回歸算法的示例
本篇文章主要介紹了用TensorFlow實現(xiàn)lasso回歸和嶺回歸算法的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05pycharm?使用conda虛擬環(huán)境的詳細配置過程
這篇文章主要介紹了pycharm?使用conda虛擬環(huán)境,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03