在pyspark中列出DataFrame

use*_*665 3 pyspark pyspark-sql

有人可以告诉我如何将包含字符串的列表转换为 pyspark 中的数据框。我使用 python 3.6 和 spark 2.2.1。我刚刚开始学习火花环境,我的数据如下所示

my_data =[['apple','ball','ballon'],['cat','camel','james'],['none','focus','cake']]
Run Code Online (Sandbox Code Playgroud)

现在,我想创建一个数据框如下

---------------------------------
|ID | words                     |
---------------------------------
 1  | ['apple','ball','ballon'] |
 2  | ['cat','camel','james']   |
Run Code Online (Sandbox Code Playgroud)

我什至想添加与数据无关的 ID 列

Psi*_*dom 5

您可以将列表转换为 Row 对象列表,然后使用spark.createDataFrame它将从您的数据推断架构:

from pyspark.sql import Row
R = Row('ID', 'words')

# use enumerate to add the ID column
spark.createDataFrame([R(i, x) for i, x in enumerate(my_data)]).show() 
+---+--------------------+
| ID|               words|
+---+--------------------+
|  0|[apple, ball, bal...|
|  1| [cat, camel, james]|
|  2| [none, focus, cake]|
+---+--------------------+
Run Code Online (Sandbox Code Playgroud)