在列表中创建 Spark 数据框后如何使用它们?

Posted

技术标签:

【中文标题】在列表中创建 Spark 数据框后如何使用它们?【英文标题】:How to work with Spark dataframes after creating them in a list? 【发布时间】:2019-07-14 11:04:37 【问题描述】:

我在一个循环中创建了多个 spark 数据帧。但由于某种原因,我无法使用它们。

genreslist = ['unknown', ... ,'Western']

from pyspark.sql.types import StructType, StructField, IntegerType, StringType, LongType

schema = StructType([StructField("movie_id",LongType(),True)...StructField("Western",LongType(),True)])

d = 

for name in genreslist:
    d[name] = spark.createDataFrame([], schema)

这是带有数据框的列表:

d
'Action': DataFrame[movie_id: bigint, ..., Western: bigint],
 ...
 'unknown': DataFrame[movie_id: bigint, ..., Western: bigint]

但我不能完全使用数据框,例如:

Action.printSchema()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-54-d2848cc5d13e> in <module>()
----> 1 Action.printSchema()

NameError: name 'Action' is not defined

看来我需要以某种方式“激活”这些数据帧。

【问题讨论】:

【参考方案1】:

我发现了问题。 在这种情况下使用数据框的正确方法:

df['Action'].printSchema()

    root
 |-- movie_id: long (nullable = true)
 ...
 |-- Western: long (nullable = true)

【讨论】:

以上是关于在列表中创建 Spark 数据框后如何使用它们?的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 Unix Shell 终端中的 Spark 查看在配置单元中创建的表

Spark:如何在每个执行程序中创建本地数据帧

如何在 Spark 中创建 UDF 以支持自定义谓词

如何从键值对列表中创建 Spark Row

如何从 Python 中不同长度的列表列表中创建数据框?

无法在 spark/pyspark 中创建数组文字