首页 > 解决方案 > Python:将熊猫数据框作为参数传递给子进程

问题描述

如何使用子进程将数据帧作为参数发送到带有 spark-submit 的 python 脚本。我已经尝试了下面的代码,但没有成功,因为我们无法连接字符串和对象。

def spark_submit(self, test_cases, email):
    command = 'spark-submit TestRunner.py '+test_cases+" "+email
    print(command)
    process = subprocess.Popen([command], shell=True,
                               stdout=subprocess.PIPE,
                               stderr=subprocess.PIPE)
    output, error = process.communicate()
   status = process.returncode
   print(status)```

标签: pythonpandaspysparksubprocessspark-submit

解决方案


您不能连接任何不是字符串(或强制转换为字符串)的东西。我假设您不能直接将数据框作为命令行参数传递,因此我建议将其转换为文件并传递文件路径而不是数据框本身。

df.to_csv('mydf.csv')
command = 'spark-submit TestRunner.py mydf.csv ' + email 

推荐阅读