Lia*_*eng 16 python apache-spark pyspark
Spark版本:2.1
例如,在pyspark中,我创建一个列表
test_list = [['Hello', 'world'], ['I', 'am', 'fine']]
那么如何从test_list创建一个数据框,其中数据框的类型如下所示:
DataFrame[words: array<string>]
Pus*_*hkr 23
这是怎么做的 -
from pyspark.sql.types import *
cSchema = StructType([StructField("WordList", ArrayType(StringType()))])
# notice extra square brackets around each element of list
test_list = [['Hello', 'world']], [['I', 'am', 'fine']]
df = spark.createDataFrame(test_list,schema=cSchema)
Run Code Online (Sandbox Code Playgroud)
Gra*_*non 10
我不得不处理多个列和类型-下面的示例有一个字符串列和一个整数列。对Pushkr的代码(略)稍作调整即可:
from pyspark.sql.types import *
cSchema = StructType([StructField("Words", StringType())\
,StructField("total", IntegerType())])
test_list = [['Hello', 1], ['I am fine', 3]]
df = spark.createDataFrame(test_list,schema=cSchema)
Run Code Online (Sandbox Code Playgroud)
输出:
df.show()
+---------+-----+
| Words|total|
+---------+-----+
| Hello| 1|
|I am fine| 3|
+---------+-----+
Run Code Online (Sandbox Code Playgroud)
您应该使用行对象列表([行])创建数据框。
from pyspark.sql import Row
spark.createDataFrame(list(map(lambda x: Row(words=x), test_list)))
Run Code Online (Sandbox Code Playgroud)