pyspark - 在函数中保存 pyspark 数据框
问题描述
我正在尝试将 pyspark 数据帧保存到 hdfs 文件夹中。这段代码在函数之外工作正常,但是一旦我尝试将它放入函数中,我就会出错。可能是我如何引用函数参数的一个案例。谢谢您的帮助。
def save_file(df):
start_time = time.time()
df.createOrReplaceTempView("df")
hc.sql("create table hdfs_folder.{} as select * from {}".format(df,df))
print("{} saved in hdfs_folder".format(df))
print("**********************************")
print("--- %s seconds ---" % (time.time() - start_time))
save_file(py_df)
解决方案
我认为您想要的是使用字符串df
而不是变量df
,如下所示:
def save_file(df):
start_time = time.time()
df.createOrReplaceTempView("df")
hc.sql("create table hdfs_folder.{} as select * from {}".format('df','df'))
print("{} saved in hdfs_folder".format('df'))
print("**********************************")
print("--- %s seconds ---" % (time.time() - start_time))
save_file(py_df)
已编辑 - 使用变量名称:
def save_file(df, name):
start_time = time.time()
df.createOrReplaceTempView("df")
hc.sql("create table hdfs_folder.{} as select * from {}".format(name,'df'))
print("{} saved in hdfs_folder".format(name))
print("**********************************")
print("--- %s seconds ---" % (time.time() - start_time))
save_file(py_df, 'py_df')
推荐阅读
- javascript - 如何获取语义用户日历当前显示的月份和年份?
- office365 - 我目前使用的是 Windows 10,当我尝试打开任何 Microsoft Office 365 应用程序(例如 word 或 excel)时,出现以下错误
- c# - DefaultAuthenticateScheme 未设置
- arrays - 使用结构和数组在表格视图之间传递数据(5)
- php - 如何在 PHP 中使用 PGP 加密?
- javascript - 如何通过单击按钮展开 div?
- java - JavaFX:如何在新场景中更新 observableArrayList 中的选定项目。没有通过在整个数据集的支持呢?
- javascript - 如何从单独的文件中访问来自控制器的指令数据
- python - 在不循环的情况下比较两个数据帧之间的每个数据点之间的每个数据点
- node.js - mapLimit 有什么意义?