我有一个包含2个ArrayType字段的PySpark DataFrame:
>>>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'])]
Run Code Online (Sandbox Code Playgroud)
我想将它们组合成一个ArrayType字段:
>>>df2
DataFrame[id: string, tokens_bigrams: array<string>]
>>>df2.take(1)
[Row(id='ID1', tokens_bigrams=['one', 'two', 'two', 'one two', 'two two'])]
Run Code Online (Sandbox Code Playgroud)
使用字符串的语法似乎不起作用:
df2 = df.withColumn('tokens_bigrams', df.tokens + df.bigrams)
Run Code Online (Sandbox Code Playgroud)
谢谢!
从这个数据框
+-----+-----------------+
|store| values |
+-----+-----------------+
| 1|[1, 2, 3,4, 5, 6]|
| 2| [2,3]|
+-----+-----------------+
Run Code Online (Sandbox Code Playgroud)
我想应用这个Counter函数来得到这个:
+-----+------------------------------+
|store| values |
+-----+------------------------------+
| 1|{1:1, 2:1, 3:1, 4:1, 5:1, 6:1}|
| 2|{2:1, 3:1} |
+-----+------------------------------+
Run Code Online (Sandbox Code Playgroud)
我使用另一个问题的答案得到了这个数据框:
所以我尝试修改答案中的代码,如下所示:
选项1:
+-----+-----------------+
|store| values |
+-----+-----------------+
| 1|[1, 2, 3,4, 5, 6]|
| 2| [2,3]|
+-----+-----------------+
Run Code Online (Sandbox Code Playgroud)
选项 2:
+-----+------------------------------+
|store| values |
+-----+------------------------------+
| 1|{1:1, 2:1, 3:1, 4:1, 5:1, 6:1}|
| 2|{2:1, 3:1} |
+-----+------------------------------+
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
有谁知道我该怎么做? …