2017-10-25 3 views
-1

Spark에서 행을 결합하려고합니다.spark databricks의 행을 결합하는 방법

데이터 세트에는 연도, 우편 번호, HPI_with_2000_based 등의 행이 있습니다. 나는 세 개의 우편 번호와 그 정보를 HPI_with_2000_based로 선택했습니다. 내가 뭘 원하는 내가 다음과 같이 입력하면 2000

후 이러한 행 (세 개의 우편 번호와 자신의 HPI_with_2000_based) 및 연도를 결합하려는이며 일 :

df6 = spark.sql("select ZipCode,Year, HPI_with_2000_base from df1 where ZipCode = 94122 or ZipCode = 10583 or ZipCode = 91411") 

결과 dataframe :

나는 다음과 같이 입력하면
+-------+----+------------------+ 
|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() 

당신이 ADV 수 나는 결과를 얻기 위해 무엇을해야합니까? 감사합니다.

+0

'어디에서 ZipCODE IN (94122, 10583, 91411)'을 사용하여보다 쉽게 ​​읽고 쉽게 변경할 수 있습니다. – philantrovert

답변

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""") 
+0

와우! Shaido 정말 고마워! 그것은 효과가있다! 고맙습니다!!!!!! – Robin

+0

@Robin 아무런 문제가 없으므로 답변 해 주셨습니다. 여기를 참조하십시오 : https://meta.stackexchange.com/a/5235 – Shaido

관련 문제