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

时间:2019-07-14 11:04:37

标签: list dataframe pyspark

我已经在一个循环中创建了多个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 个答案:

答案 0 :(得分:0)

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

df['Action'].printSchema()

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