创建包含ArrayType的Pyspark架构
我正在尝试为我的新数据框架创建一个模式,并尝试了各种括号和关键字的组合,但一直无法找出如何使其工作。我目前的尝试:创建包含ArrayType的Pyspark架构,pyspark,schema,spark-dataframe,rdd,Pyspark,Schema,Spark Dataframe,Rdd,我正在尝试为我的新数据框架创建一个模式,并尝试了各种括号和关键字的组合,但一直无法找出如何使其工作。我目前的尝试: from pyspark.sql.types import * schema = StructType([ StructField("User", IntegerType()), ArrayType(StructType([ StructField("user", StringType()), StructField("product", StringTy
from pyspark.sql.types import *
schema = StructType([
StructField("User", IntegerType()),
ArrayType(StructType([
StructField("user", StringType()),
StructField("product", StringType()),
StructField("rating", DoubleType())]))
])
返回错误:
elementType should be DataType
Traceback (most recent call last):
File "/usr/hdp/current/spark2-client/python/pyspark/sql/types.py", line 290, in __init__
assert isinstance(elementType, DataType), "elementType should be DataType"
AssertionError: elementType should be DataType
我在谷歌上搜索过,但到目前为止还没有对象数组的好例子。您需要为
ArrayType
属性添加一个StructField
。这一条应该有效:
from pyspark.sql.types import *
schema = StructType([
StructField("User", IntegerType()),
StructField("My_array", ArrayType(
StructType([
StructField("user", StringType()),
StructField("product", StringType()),
StructField("rating", DoubleType())
])
)
])
有关更多信息,请查看此链接: