2017-12-28 47 views
-3

다음은 두 개의 데이터 프레임을 비교하고 교차 함수를 부과하기 위해 작성한 코드입니다.데이터 프레임을 비교하는 pyspark intersection() 함수

import os 
from pyspark import SparkContext 
sc = SparkContext("local", "Simple App") 
from pyspark.sql import SQLContext, Row 
sqlContext = SQLContext(sc) 
from pyspark.sql import HiveContext 
sqlContext = HiveContext(sc) 

df = sqlContext.read.format("jdbc").option("url","jdbc:sqlserver://xxx:xxx").option("databaseName","xxx").option("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver").option("dbtable","xxx").option("user","xxxx").option("password","xxxx").load() 

df.registerTempTable("test") 

df1= sqlContext.sql("select * from test where amitesh<= 300") 
df2= sqlContext.sql("select * from test where amitesh <= 400") 

df3= df1.intersection(df2) 
df3.show() 

나는 오류가 아래에 무엇입니까 : 나의 이해가 정확한지

AttributeError: 'DataFrame' object has no attribute 'intersection' 

경우, 교차() 파이썬 설정 기능에서 파생 된 붙박이 하위 기능입니다. 그래서

1) 내가 pyspark에서 사용하려고한다면, 내 코드 안에 특별한 모듈을 가져올 필요가 있을까, 아니면 pyspark를 위해서 내장 된 것처럼 작동해야합니까?

2)이 intersection() 함수를 사용하려면 먼저 df를 rdd로 변환해야합니까?

내가 잘못한 부분을 수정하십시오. 누군가가 저에게 실제 사례를 줄 수 있습니까?

내 동기는 SQL 서버에서 공용 레코드를 가져와 HIVE로 이동하는 것입니다. 지금부터는 교차 기능이 작동하도록 노력한 후 교차()가 작동하는 경우 처리 할 수 ​​있다는 HIVE 요구 사항부터 시작하려고합니다.

답변

-1

나는 inters() 대신에 intersect()를 사용했다.