【发布时间】:2017-07-05 04:14:57
【问题描述】:
我想使用 Apache Spark 并通过 JDBC 连接到 Vertica。
在 Vertica 数据库中,我有 1 亿条记录,并且 spark 代码在另一台服务器上运行。
当我在 Spark 中运行查询并监控网络使用情况时,两台服务器之间的流量非常高。
Spark 似乎从目标服务器加载了所有数据。
这是我的代码:
test_df = spark.read.format("jdbc")
.option("url" , url).option("dbtable", "my_table")
.option("user", "user").option("password" , "pass").load()
test_df.createOrReplaceTempView('tb')
data = spark.sql("select * from tb")
data.show()
当我运行它时,经过 2 分钟和非常高的网络使用率,结果返回。
Spark 会从目标数据库中加载全部数据吗?
【问题讨论】:
-
您可以使用
sql("select count(*) from spark_table").explain(true)查看查询计划,这可能会给您更多的见解。
标签: apache-spark jdbc vertica pyspark-sql