如何将Pyspark Dataframe 的名称作为字符串获取?

qvtsj1bj  于 2023-06-21  发布在  Spark
关注(0)|答案(2)|浏览(103)

我有八个Pyspark Dataframe ,它们的名称包括“store”、“inventory”和“storage”。
我需要为每一个创建视图,但为了简化,而不是说

store.createOrReplaceTempView('store_view') etc.

是否可以遍历 Dataframe 列表并创建视图?例如:

df_list = ["store", "inventory", "storage"]

for d in df_list:
    x = "convert dataframe d to a string"
    d.createOrReplaceTempView(x)

如何将 Dataframe 名作为字符串赋给x?
我想你可以做相反的事情-有一个字符串列表,但如何从中获得 Dataframe ?

e0bqpujr

e0bqpujr1#

您可以使用字典来实现此目的。其中键将表示 Dataframe 名称,并且值将等同于 Dataframe 本身

示例

in_hash = {
  'store':store,
  'inventory':inventory,
  'storage':storage
}

for name in in_hash:
    in_hash[name].createOrReplaceTempView(name)
edqdpe6u

edqdpe6u2#

要创建PySpark DataFrame的临时视图,可以利用globals()[]函数从全局符号表中动态检索相应的DataFrame对象,按名称搜索。

df_list = ["store", "inventory", "storage"]

for d in df_list:
    df = globals()[d]
    df.createOrReplaceTempView(d)

相关问题