pyspark 使用名称中的变量将数据框保存到配置单元表

Posted

技术标签:

【中文标题】pyspark 使用名称中的变量将数据框保存到配置单元表【英文标题】:pyspark save dataframe to hive table using variable in the name 【发布时间】:2019-09-11 12:44:39 【问题描述】:

我正在使用 databrick pyspark 进行编码 想知道如何将 变量值 传递给要保存在 Azure 中的表的名称

如果那是修复表名,我可以使用它

result.write.format("parquet").mode("overwrite").saveAsTable("result0911")

但我希望这样做

有一个变量:time = datetime.today() 其值为“2019-09-11 12:10:48.969602”

我想先将“时间”格式化为"20190911121048",这对表名有好处(我也需要时间,因为人们可能每天保存记录不止一次)

然后使用我要保存的值"20190911121048" 表名 表名应该是"result_20190911121048"

有什么建议吗?谢谢 以下不起作用

result.write.format("parquet").mode("overwrite").saveAsTable("result_%s time")

【问题讨论】:

我可以使用 t=time.strftime("%Y%m%d%H%M") 重新格式化时间,但仍然不能将 t 的值放入名字。 制作表名的变量,然后使用str.format 【参考方案1】:

假设您有 2 个具有值的变量

time = "20190911121048"
table_name = 'result'

然后你可以将表名设为:

final_table_name = '_'.format(table_name, time)

result.write.format("parquet").mode("overwrite").saveAsTable(final_table_name)

【讨论】:

@CloverCeline 如果这是您要找的,请告诉我,请接受答案【参考方案2】:

感谢您的意见。我可以使用这个:

time = datetime.today()
t=time.strftime("%Y%m%d%H%M")
result_name ="recommendation_%s" % (t)
final_recon.write.format("parquet").mode("overwrite").saveAsTable(result_name)

【讨论】:

以上是关于pyspark 使用名称中的变量将数据框保存到配置单元表的主要内容,如果未能解决你的问题,请参考以下文章

将行列表保存到 pyspark 中的 Hive 表

将 pyspark 中的数据框保存为 csv 中的 hivetable

我可以将 pyspark 数据框保存为哪些文件格式?

Pyspark:将df写入具有特定名称的文件,绘制df

无法将数据框保存到镶木地板 pyspark

PySpark:如何将数据框与存储在其他变量中的列名连接起来