为了清楚起见,我想问一下Spark SQL而不是Spark DataFrame的语法。
我们知道Spark SQL可以直接查询实木复合地板(文本等)表,下面是一个示例。如果我要将2个路径用作单个表怎么办?
select
*
from
parquet.`path_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`