我有一个pysparkDataframe,有2个arraytype字段:
>>>df
DataFrame[id: string, tokens: array<string>, bigrams: array<string>]
>>>df.take(1)
[Row(id='ID1', tokens=['one', 'two', 'two'], bigrams=['one two', 'two two'])]
我想将它们合并到一个arraytype字段中:
>>>df2
DataFrame[id: string, tokens_bigrams: array<string>]
>>>df2.take(1)
[Row(id='ID1', tokens_bigrams=['one', 'two', 'two', 'one two', 'two two'])]
用于字符串的语法在这里似乎不起作用:
df2 = df.withColumn('tokens_bigrams', df.tokens + df.bigrams)
谢谢!
2条答案
按热度按时间bxgwgixi1#
在spark2.4.0(databricks平台上的2.3)中,您可以使用concat函数在dataframeapi中进行本机操作。在您的示例中,您可以这样做:
这是相关的吉拉。
bxgwgixi2#
Spark>=2.4
你可以用
concat
功能(spark-23736):当其中一个值
NULL
你可以coalesce
与array
:Spark<2.4
不幸的是连接
array
列在一般情况下,您需要一个自定义项,例如:可用作: