我正在尝试在Spark中组合行。
数据集包含Year,Zip代码,HPI_with_2000_ased等行。我选择了三个邮政编码及其HPI_with_2000_ased的信息。我想要做的是我希望将这些行(三个邮政编码及其HPI_with_2000_)和2000年后的年份组合在一起。
当我输入这样的内容并且有效时:
df6 = spark.sql("select ZipCode,Year, HPI_with_2000_base from df1 where ZipCode = 94122 or ZipCode = 10583 or ZipCode = 91411")
结果数据框:
+-------+----+------------------+
|ZipCode|Year|HPI_with_2000_base|
+-------+----+------------------+
| 10583|1976| 16.66|
| 10583|1977| 16.81|
| 10583|1978| 18.37|
| 10583|1979| 23.06|
| 10583|1980| 24.37|
| 10583|1981| 30.82|
| 10583|1982| 32.46|
| 10583|1983| 35.25|
| 10583|1984| 42.15|
| 10583|1985| 48.94|
| 10583|1986| 57.22|
| 10583|1987| 66.24|
| 10583|1988| 76.98|
| 10583|1989| 77.28|
| 10583|1990| 74.44|
| 10583|1991| 69.85|
| 10583|1992| 70.86|
| 10583|1993| 70.98|
| 10583|1994| 71.39|
| 10583|1995| 71.27|
+-------+----+------------------+
only showing top 20 rows
然而,当我输入这样的内容时,它失败了:
df6 = spark.sql("select ZipCode,Year, HPI_with_2000_base from df1 where ZipCode = 94122 or ZipCode = 10583 or ZipCode = 91411" or Year >= '2000'").show()
您能告诉我该怎么做才能得到结果? 谢谢。
答案 0 :(得分:0)
如果我正确理解了这个问题,您希望将条件Year >= 2000
添加到当前的SQL语句中。您的"
似乎有点错位,您需要用括号括住ZipCode or ZipCode or ZipCode
部分。工作声明可能如下所示:
val df6 = spark.sql("""select ZipCode, Year, HPI_with_2000_base from df1
where ZipCode IN(94122, 10583, 91411) and Year >= 2000""")