2016-07-13 3 views
3

Jupyter 노트북을 사용하여 pySpark에 대한 분석을하고 있습니다. 내 코드는 원래 sqlContext = SQLContext (sc)을 사용하여 데이터 프레임을 만들었지 만 이제는 윈도우 기능을 사용하기 때문에 HiveContext으로 전환했습니다.HiveContext createDataFrame이 pySpark (jupyter)에서 작동하지 않습니다.

내 문제는 dataframe을 만들려고 할 때 지금은 자바 오류 받고 있어요 것입니다 :이 후

## Create new SQL Context. 
from pyspark.sql import SQLContext 
from pyspark.sql import DataFrame 
from pyspark.sql import Window 
from pyspark.sql.types import * 
import pyspark.sql.functions as func 

sqlContext = HiveContext(sc) 

은 내가 RDD에 내 데이터를 읽고, 내 DF에 대한 스키마를 만들 수 있습니다. 이제

## After loading the data we define the schema. 
fields = [StructField(field_name, StringType(), True) for field_name in data_header] 
schema = StructType(fields) 

, 나는 DF를 빌드 할 때이 내가 오류입니다 :

## Build the DF. 
data_df = sqlContext.createDataFrame(data_tmp, schema) 

--------------------------------------------------------------------------- 
TypeError         Traceback (most recent call last) 
... 
/home/scala/spark-1.6.1/python/pyspark/sql/context.pyc in _get_hive_ctx(self) 
    690 
    691  def _get_hive_ctx(self): 
--> 692   return self._jvm.HiveContext(self._jsc.sc()) 
    693 
    694  def refreshTable(self, tableName): 

TypeError: 'JavaPackage' object is not callable 

지금까지 운없이 인터넷 검색을 한이. 어떤 조언을 크게 주시면 감사하겠습니다.

+0

당신이 직접 불꽃을 구축했습니다처럼 보이는, 내가 맞다? 이 경우 해당 메소드에 대한 세부 정보를 제공 할 수 있습니까? – zero323

+0

@ zero323 예,이 튜토리얼은 매우 유사합니다. http://blog.prabeeshk.com/blog/2014/10/31/install-apache-spark-on-ubuntu-14-dot-04 /. 그것은 설정 문제처럼 보이나요? 이 문제를 해결하는 방법에 대한 조언이 있으면 다시 설치해 드리겠습니다. 감사. –

답변

1

HiveContext 하이브를 지원하는 바이너리 빌드가 필요합니다. Hive 프로필을 활성화해야 함을 의미합니다. 당신이 사용하기 때문에 sbt assembly 당신은 적어도 필요

예를 들어, 메이븐으로 빌드 할 때 같은이 필요
sbt -Phive assembly 

:

mvn -Phive -DskipTests clean package 
+0

감사합니다.'sbt -Phive assembly'를 시도했지만, 이제는'Not a valid command : Phive'에 대해 불평하고 있습니다. 어셈블리를 시작하기 전에 아무것도 다운로드하거나 다른 작업을 수행해야합니까? –

+0

나는 소리가 나지 않는다. 거기에 아무것도없는 것이 확실합니까? sbt가 설치되어 있습니까? 그렇지 않다면'build/sbt '를 사용할 수 있습니다. 이 문제를 해결할 수 없다면 다음과 같이 사용을 중지 할 수도 있습니다 :'SPARK_HIVE = true build/sbt assembly' – zero323

+0

sbt를 설치했는데, 컴파일을 시작하면 몇 분 후에 실패합니다. 다음은 sbt -Phive 어셈블리에 대한 전체 출력 로그입니다. http://pastebin.com/yMDzk5WD 제안 사항이 있습니까? 모든 HiveContext 함수에 액세스하지 않고 여기에 붙어 있습니다. –