如何在Spark SQL中指定表的多个路径

时间:2019-04-24 21:41:48

标签: sql apache-spark path

为了清楚起见,我想问一下Spark SQL而不是Spark DataFrame的语法。

我们知道Spark SQL可以直接查询实木复合地板(文本等)表,下面是一个示例。如果我要将2个路径用作单个表怎么办?

select
    *
from
    parquet.`path_1`

1 个答案:

答案 0 :(得分:0)

这是在python中,所以我可以显示变量,但是SQL部分将是相同的。我假设您只是想将数据追加到自身上?如果是这样:

pth1 = '/path/to/location1/part-r-00000-bf53578.gz.parquet'
pth2 = '/path/to/location2/part-r-00001-bf265.gz.parquet'
sqlContext.sql("""
    select * from parquet.`hdfs://{0}` 
    union 
    select * from  parquet.`hdfs://{1}`
    """.format(pth1,pth2)).show()
+----+----+------------+
|col1|col2|        col3|
+----+----+------------+
|   2|   b|9.0987654321|
|   1|   a| 4.123456789|
+----+----+------------+

在仅spark-sql中,它看起来像:

SELECT * 
FROM parquet.`hdfs:///path/to/location1/part-r-00000-bf53578.gz.parquet`
UNION 
SELECT * 
FROM parquet.`hdfs:///path/to/location2/part-r-00001-bf265.gz.parquet`