나는 이것에 대한 이전 게시물을 읽었지만, 왜 ipgthon 노트북을 Postgres DB에 연결할 수 없는지 정확히 지적 할 수 없다.ipython 노트북에서 Postgres 데이터베이스에 Pyspark 연결
ipython 노트북에서 pyspark를 실행할 수 있으며 SparkContext가 'sc'로로드됩니다. 나는 (this 후 기준) DB에 연결하는 ipython 노트북에서 뭐하는 거지 여기
export SPARK_CLASSPATH=/path/to/downloaded/jar
것 :
나는 Postgres의 드라이버를 찾기 위해 내 .bash_profile에 다음 사항이
from pyspark.sql import DataFrameReader as dfr
sqlContext = SQLContext(sc)
table= 'some query'
url = 'postgresql://localhost:5432/dbname'
properties = {'user': 'username', 'password': 'password'}
df = dfr(sqlContext).jdbc(
url='jdbc:%s' % url, table=table, properties=properties
)
오류 :
Py4JJavaError: An error occurred while calling o156.jdbc.
: java.SQL.SQLException: No suitable driver.
나는 그것이 오류 w의 이해 내가 다운로드 한 드라이버를 찾았지만 내 .bash_profile 파일에 경로를 추가했을 때 왜이 오류가 발생하는지 이해할 수 없습니다.
또한 pyspark - jars를 통해 드라이버를 설정하려고했지만 "no such file or directory"오류가 발생합니다.
이 blogpost 또한 포스트 그레스 데이터 소스에 연결하는 방법을 보여줍니다 만, 다음은 나에게 "그런 디렉토리"오류를 제공합니다 :
./bin/spark-shell --packages org.postgresql:postgresql:42.1.4
추가 정보 : 그들은했습니다
spark version: 2.2.0
python version: 3.6
java: 1.8.0_25
postgres driver: 42.1.4
절대 경로 란 무엇입니까? 나는 운전자의 실제 경로를 가지고 그것을 사용했다. 위의 그림과 같은 문제로 바뀌 었습니다. – cocanut
spark classpath가 더 이상 사용되지 않는 것으로 보입니다. https://github.com/elastic/elasticsearch-hadoop/pull/580 – cocanut
연결 했으므로 시간이 지나면 문서화를 위해 솔루션을 업로드하겠습니다. 기본적으로, 나는 spark_classpath가 deprecated 때문에 --driver-class-path를 사용해야한다고 생각한다. – cocanut