pyspark从一列中的列表中创建两列

时间:2017-04-28 07:02:43

标签: pyspark pyspark-sql

这是我的第一行数据:

Row(params=['id=407439', 'a=something', 'b=something_else', 'c=anything', 'd='])

我需要两列值 a b

Row(a='a=something', b='b=something_else')

Row(a='something', b='something_else')

我找到了这样的答案: How to transform DataFrame per one column to create two new columns in pyspark?但它没有说明如何通过某种字符串模式而不是索引来选择元素。

我不知道这是否重要,但我得到了第一个列表行:

some_data.withColumn('params', split(string, '&'))

2 个答案:

答案 0 :(得分:0)

我认为这应该有效:

 some_data.withColumn('a', col('params').startswith('a='))

答案 1 :(得分:0)

毕竟这对我有用(但也许其他解决方案更好):

  class UserInterface; // only need a forward declaration

  class MoveSeries : public QDialog
  {
     Q_OBJECT
 public:
     explicit MoveSeries(UserInterface *parent = 0);
     ~MoveSeries();
     ...
     UserInterface * uiparent;
 }

同样的'b'