Jupyter Notebooks Spark RDD拆分功能——去除括号
Jupyter Notebooks Spark RDD split function - remove brackets
我正在从以前的 RDD 中提取一些 "columns",而不是想拆分第二个元素。 Spark 将其包裹在方括号中。如何将它们排成一行(解开它们,所以去掉括号)?
我花了大约 10 个小时来找到解决方案......需要在不使用数据框的情况下完成。
谢谢
separatedRDD = extractedRDD.map(lambda y: (y[0],y[1].split(' ' , 1),y[2],y[3]))
separatedRDD.take(2) # get output
[(u'2014-03-15:10:10:20',
[u'Sorrento', u'F41L'], ############### those are brackets I am talking about...
u'8cc3b47e-bd01-4482-b500-28f2342679af',
u'33.6894754264'),
(u'2014-03-15:10:10:20',
[u'MeeToo', u'1.0'],
u'ef8c7564-0a1a-4650-a655-c8bbd5f8f943',
u'37.4321088904')]
这是一个列表,所以你只需要把它的元素一个一个地拉出来压平它(假设大小总是小到 2):
separatedRDD.map(lambda y: (y[0], y[1][0], y[1][1], y[2])).collect()
结果:
[('2014-03-15:10:10:20',
'Sorrento',
'F41L',
'8cc3b47e-bd01-4482-b500-28f2342679af'),
('2014-03-15:10:10:20',
'MeeToo',
'1.0',
'ef8c7564-0a1a-4650-a655-c8bbd5f8f943')]
我正在从以前的 RDD 中提取一些 "columns",而不是想拆分第二个元素。 Spark 将其包裹在方括号中。如何将它们排成一行(解开它们,所以去掉括号)? 我花了大约 10 个小时来找到解决方案......需要在不使用数据框的情况下完成。 谢谢
separatedRDD = extractedRDD.map(lambda y: (y[0],y[1].split(' ' , 1),y[2],y[3]))
separatedRDD.take(2) # get output
[(u'2014-03-15:10:10:20',
[u'Sorrento', u'F41L'], ############### those are brackets I am talking about...
u'8cc3b47e-bd01-4482-b500-28f2342679af',
u'33.6894754264'),
(u'2014-03-15:10:10:20',
[u'MeeToo', u'1.0'],
u'ef8c7564-0a1a-4650-a655-c8bbd5f8f943',
u'37.4321088904')]
这是一个列表,所以你只需要把它的元素一个一个地拉出来压平它(假设大小总是小到 2):
separatedRDD.map(lambda y: (y[0], y[1][0], y[1][1], y[2])).collect()
结果:
[('2014-03-15:10:10:20',
'Sorrento',
'F41L',
'8cc3b47e-bd01-4482-b500-28f2342679af'),
('2014-03-15:10:10:20',
'MeeToo',
'1.0',
'ef8c7564-0a1a-4650-a655-c8bbd5f8f943')]