列表到pyspark中的数据帧

列表到pyspark中的数据帧,pyspark,pyspark-sql,Pyspark,Pyspark Sql,有人能告诉我如何在pyspark中将包含字符串的列表转换为数据帧吗。我正在使用Python3.6和spark 2.2.1。我刚刚开始学习spark环境,我的数据如下所示 my_data =[['apple','ball','ballon'],['cat','camel','james'],['none','focus','cake']] 现在,我想创建一个数据帧,如下所示 --------------------------------- |ID | words

有人能告诉我如何在pyspark中将包含字符串的列表转换为数据帧吗。我正在使用Python3.6和spark 2.2.1。我刚刚开始学习spark环境,我的数据如下所示

my_data =[['apple','ball','ballon'],['cat','camel','james'],['none','focus','cake']]
现在,我想创建一个数据帧,如下所示

---------------------------------
|ID | words                     |
---------------------------------
 1  | ['apple','ball','ballon'] |
 2  | ['cat','camel','james']   |

我甚至想添加数据中未关联的ID列

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

从pyspark.sql导入行
R=行('ID','words'))
#使用enumerate添加ID列
createDataFrame([R(i,x)表示枚举(my_数据)中的i,x)]).show()
+---+--------------------+
|ID|字|
+---+--------------------+
|苹果、球、球|
|1 |[猫、骆驼、詹姆斯]|
|2 |[无,专注,蛋糕]|
+---+--------------------+
试试这个-

data_array = []
for i in range (0,len(my_data)) :
    data_array.extend([(i, my_data[i])])

df = spark.createDataframe(data = data_array, schema = ["ID", "words"])

df.show()
试试这个——最简单的方法

  from pyspark.sql import *
  x = Row(utc_timestamp=utc, routine='routine name', message='your message')
  data = [x]
  df = sqlContext.createDataFrame(data) 
简单方法:

my_data =[['apple','ball','ballon'],['cat','camel','james'],['none','focus','cake']]

spark.sparkContext.parallelize(my_data).zipWithIndex() \
toDF(["id", "words"]).show(truncate=False)

+---------------------+-----+
|id                   |words|
+---------------------+-----+
|[apple, ball, ballon]|0    |
|[cat, camel, james]  |1    |
|[none, focus, cake]  |2    |
+---------------------+-----+

谢谢你的回复。但是我在执行代码Py4JJavaError时遇到了以下错误:调用o40.description时发生错误:org.apache.spark.SparkException:作业因阶段失败而中止:阶段2.0中的任务1失败1次,最近的失败:阶段2.0中的任务1.0丢失(TID 3,本地主机,执行器驱动程序):org.apache.spark.api.python.PythonException:回溯(最近一次调用):文件“pyspark/worker.py”,第123行,在main(“%d.%d”%sys.version\u info[:2],version))中尝试重新启动pyspark shell。错误似乎与代码无关。这并不可怕。这正是我搜索的内容