我已经在一个循环中创建了多个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
好像我需要以某种方式“激活”这些数据框。
答案 0 :(得分:0)
我发现了问题。 在这种情况下使用数据框的正确方法是:
df['Action'].printSchema()
root
|-- movie_id: long (nullable = true)
...
|-- Western: long (nullable = true)