Spark (-shell)에서 PostgreSQL에 액세스하려고합니다.
6032 단어 PostgreSQL스파크PostgreSQL9.x
실행 환경은 다음과 같습니다. 덧붙여 PostgreSQL의 인스톨, Setup 순서는 생략하고 있습니다.
· CentOS 7.5
· PostgreSQL 9.2.23
· 아파치 스파크 2.3.1
아파치 스파크
각종 데이터스토어(Hadoop/Cassandra/RDB)로부터의 데이터의 꺼내, 가공, 인도를 인메모리로 실시하는 OSS의 프레임워크
Apache Spark 설치
여기 를 참고로, Java 환경의 인스톨
yum search openjdk
yum install java-1.8.0-openjdk
yum install java-1.8.0-openjdk-devel
Apache Spark의 Install
wget http://ftp.jaist.ac.jp/pub/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
tar zxvf spark-1.6.1-bin-hadoop2.6.tgz -C /usr/local/lib/
ln -s /usr/local/lib/spark-2.3.1-bin-hadoop2.7 /usr/local/lib/spark
환경 변수 설정 및 Spark-shell 시작 확인
vi /etc/profile.d/spark.sh
export SPARK_HOME=/usr/local/lib/spark
export PATH=$SPARK_HOME/bin:$PATH
source /etc/profile
spark-shell --version
JDBC 드라이버 설치
yum -y install postgresql-jdbc
find / -name postgre*.jar
spark-shell에서 PostgreSQL에 액세스
대화식 쉘 시작 및 CLASSPATH 지정
spark-shell --driver-class-path=/usr/share/java/postgresql-jdbc.jar
예) PostgreSQL mydb public.account 테이블의 데이터 로드
val jdbcDF = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/mydb").option("dbtable", "public.account").option("user", "postgres").load()
jdbcDF.filter(jdbcDF("id")<10).show()
예) public.account 테이블의 데이터를 public.account_bk 테이블에 복사(추가)
val prop = new java.util.Properties
prop.setProperty("driver", "org.postgresql.Driver")
prop.setProperty("user", "postgres")
prop.setProperty("password", "postgres")
jdbcDF.write.mode("append").jdbc("jdbc:postgresql://localhost:5432/mydb", "public.account_bk", prop)
val jdbcDF1 = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/mydb").option("dbtable", "public.account_bk").option("user", "postgres").load()
jdbcDF1.show()
public.account 테이블의 데이터가 public.account_bk 테이블에 복제됨
Spark-shell 종료
scala>Press (Ctrl+D)
Reference
이 문제에 관하여(Spark (-shell)에서 PostgreSQL에 액세스하려고합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/m-eno/items/9218a5db5831a9ec20d0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
여기 를 참고로, Java 환경의 인스톨
yum search openjdk
yum install java-1.8.0-openjdk
yum install java-1.8.0-openjdk-devel
Apache Spark의 Install
wget http://ftp.jaist.ac.jp/pub/apache/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz
tar zxvf spark-1.6.1-bin-hadoop2.6.tgz -C /usr/local/lib/
ln -s /usr/local/lib/spark-2.3.1-bin-hadoop2.7 /usr/local/lib/spark
환경 변수 설정 및 Spark-shell 시작 확인
vi /etc/profile.d/spark.sh
export SPARK_HOME=/usr/local/lib/spark
export PATH=$SPARK_HOME/bin:$PATH
source /etc/profile
spark-shell --version
JDBC 드라이버 설치
yum -y install postgresql-jdbc
find / -name postgre*.jar
spark-shell에서 PostgreSQL에 액세스
대화식 쉘 시작 및 CLASSPATH 지정
spark-shell --driver-class-path=/usr/share/java/postgresql-jdbc.jar
예) PostgreSQL mydb public.account 테이블의 데이터 로드
val jdbcDF = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/mydb").option("dbtable", "public.account").option("user", "postgres").load()
jdbcDF.filter(jdbcDF("id")<10).show()
예) public.account 테이블의 데이터를 public.account_bk 테이블에 복사(추가)
val prop = new java.util.Properties
prop.setProperty("driver", "org.postgresql.Driver")
prop.setProperty("user", "postgres")
prop.setProperty("password", "postgres")
jdbcDF.write.mode("append").jdbc("jdbc:postgresql://localhost:5432/mydb", "public.account_bk", prop)
val jdbcDF1 = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/mydb").option("dbtable", "public.account_bk").option("user", "postgres").load()
jdbcDF1.show()
public.account 테이블의 데이터가 public.account_bk 테이블에 복제됨
Spark-shell 종료
scala>Press (Ctrl+D)
Reference
이 문제에 관하여(Spark (-shell)에서 PostgreSQL에 액세스하려고합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/m-eno/items/9218a5db5831a9ec20d0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
spark-shell --driver-class-path=/usr/share/java/postgresql-jdbc.jar
val jdbcDF = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/mydb").option("dbtable", "public.account").option("user", "postgres").load()
jdbcDF.filter(jdbcDF("id")<10).show()
val prop = new java.util.Properties
prop.setProperty("driver", "org.postgresql.Driver")
prop.setProperty("user", "postgres")
prop.setProperty("password", "postgres")
jdbcDF.write.mode("append").jdbc("jdbc:postgresql://localhost:5432/mydb", "public.account_bk", prop)
val jdbcDF1 = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/mydb").option("dbtable", "public.account_bk").option("user", "postgres").load()
jdbcDF1.show()
scala>Press (Ctrl+D)
Reference
이 문제에 관하여(Spark (-shell)에서 PostgreSQL에 액세스하려고합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/m-eno/items/9218a5db5831a9ec20d0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)