如何使用pySpark数据框的多个列创建BinaryType列?

时间:2019-08-24 07:56:03

标签: pyspark pyspark-sql pyspark-dataframes

我最近开始使用pySpark,所以对此一无所知。

我正在尝试在数据框中创建BinaryType列?但是努力去做...

例如,让我们做一个简单的df

df.show(2)

+---+----------+
|  col1|col2|
+---+----------+
|  "1"| null|
|  "2"| "20"|
+---+----------+

现在,我想使用BinaryType作为第三列“ col3”

|  col1|col2| col3|
+---+----------+
|  "1"| null|[1 null]
|  "2"| "20"|[ 2 20]
+---+----------+

我应该怎么做?

1 个答案:

答案 0 :(得分:0)

尝试一下:

a = [('1', None), ('2', '20')]
df = spark.createDataFrame(a, ['col1', 'col2'])
df.show()

+----+----+
|col1|col2|
+----+----+
|   1|null|
|   2|  20|
+----+----+



df = df.withColumn('col3', F.array(['col1', 'col2']))
df.show()


+----+----+-------+
|col1|col2|   col3|
+----+----+-------+
|   1|null|   [1,]|
|   2|  20|[2, 20]|
+----+----+-------+