【问题标题】:Creating a Pyspark Schema involving an ArrayType创建涉及 ArrayType 的 Pyspark Schema
【发布时间】:2018-07-01 20:37:45
【问题描述】:

我正在尝试为我的新 DataFrame 创建一个架构,并尝试了各种括号和关键字的组合,但无法弄清楚如何使其工作。我目前的尝试:

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   

我用谷歌搜索过,但到目前为止还没有很好的对象数组示例。

【问题讨论】:

    标签: pyspark schema spark-dataframe rdd


    【解决方案1】:

    对于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())
          ])
       )
    ])
    

    欲了解更多信息,请查看此链接:http://nadbordrozd.github.io/blog/2016/05/22/one-weird-trick-that-will-fix-your-pyspark-schemas/

    【讨论】:

      猜你喜欢
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 2019-02-05
      • 1970-01-01
      • 2021-04-30
      • 2021-08-20
      相关资源
      最近更新 更多