列表到pyspark中的数据帧
有人能告诉我如何在pyspark中将包含字符串的列表转换为数据帧吗。我正在使用Python3.6和spark 2.2.1。我刚刚开始学习spark环境,我的数据如下所示列表到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
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。错误似乎与代码无关。这并不可怕。这正是我搜索的内容