在Pyspark应用程序中异步运行DBAPI调用

时间:2018-05-21 23:05:24

标签: pyspark vertica

我有一个创建一些数据帧的应用程序,将它们写入磁盘,然后使用vertica_python运行命令将数据加载到Vertica中。由于加密驱动器,Spark Vertica连接器无法正常工作。

我想做的是让应用程序运行命令来加载数据,然后立即转到下一个作业。然而,它正在做的是等待在转移到下一个作业之前在Vertica中完成加载。我怎么能做到我想要的呢?感谢。

这个问题的奇怪之处在于,我想在后台运行的命令就像db_client.cursor.execute(command)一样简单。在正常情况下这不应该被阻止,为什么它在Spark?

非常具体,发生的事情是我在数据框中读取,进行转换,写入s3,然后我想在移动之前启动数据库从s3加载文件获取转换后的数据帧,再次转换它,写入s3,多次加载到db ....

1 个答案:

答案 0 :(得分:0)

我现在看到我在做什么。简单地将dbapi调用放在自己的线程中是不够的。我必须将其他想要在其自己的线程中同时运行的调用放在其中。