2017-02-22 1 views
0

SQLContext를 사용하여 데이터를 읽고 SQL 쿼리를 실행하려고합니다. 오류가 발생했습니다. 내가 제대로 WHERE 절을 쓸 수 없기 때문에PySpark : RegisterTempTable 헤더가 손실됩니다

%pyspark 

from pyspark.sql import SQLContext 
sqlCtx = SQLContext(sc) 
data = sqlCtx.read.csv("s3://recs-emr-sandbox/mtcars.csv", header=True, inferSchema=True) 
data.registerTempTable("data") 
spark.sql("SELECT * from data").show() 

나는 결과를 얻을,하지만 내 헤더가 사라 따라서 기본적으로 쓸모가 : 여기 내 코드입니다.

여기서 제가 잘못 되었나요? 감사합니다

답변

0

먼저 테이블을 등록 할 수 있습니다

data = sqlCtx.read.csv(...) 
df.registerTempTable("data") 
sqlContext.sql(...) 
+0

내가 노력하는 정확한 명령. df.registerTempTable ("데이터") 다음 내 sqlContext.sql ("* 양식 데이터를 선택") 쇼() 같은 오류가 발생합니다. 가져 오기가 누락 되었습니까? – Bachzen

+0

테이블을 만들 수 있지만 지금은 헤더가 없습니다. – Bachzen

+0

@Bachzen 데이터 원본 스키마와 동일한 헤더 이름을 사용할 수 있습니다. –