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 使用名称中的变量将数据框保存到配置单元表的主要内容,如果未能解决你的问题,请参考以下文章