Spark 경유로 Mariadb에 Apache Superset 연결
Superset의 Mariadb의 데이터를 보고 싶습니다.H2o 스파클링 워터에도 스파크를 사용할 예정이기 때문에 Mariadb --> Spark --> Superset에서 데이터를 얻는 것이 가장 좋은 솔루션이라고 생각합니다.
1. pip3 install mysqlclient를 시도했지만 다음 오류가 발생했습니다.
ERROR: Command "/bin/python3 -u -c 'import setuptools, tokenize; ... failed with error code 1 in /tmp/pip-install-kslmastj/mysqlclient/
2. 2개의 Configuration파일로 Spark를 시도했지만 Spark 또는 Spark SQL에서 데이터에 접근할 수 없는 것 같습니다.
파일 1 ../conf/spark-defaults.conf
spark.driver.extraClassPath = /usr/share/java/mysql-connector-java.jar
spark.executor.extraClassPath = /usr/share/java/mysql-connector-java.jar
파일 2 ../conf/hive-site.xml
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/DBNAME</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>USERNAME</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>PASSWORD</value>
<description>password to use against metastore database</description>
</property>
</configuration>
3. SQLechemy 방언과 PyHive에 대해 읽었습니다.슈퍼셋 코드를 검색했지만 외부 사투리를 어디에 추가해야 할지 알 수 없습니다.
4. 슈퍼셋 구성 파일에서 몇 가지 구성을 시도했습니다.포트가 스파크 포트여야 하는지 궁금합니다.SQLALCHEMY_DATABASE_URI = 'syslog://localhost:4040/'
5. csv 파일을 Import하려고 했지만 오류가 발생했습니다.
메모: scala 프롬프트에서 입력하면 Spark에서 Mariadb 데이터를 볼 수 있지만 이는 적절한 솔루션이 아니라고 생각합니다.
import org.apache.spark.sql.SQLContext
val sqlcontext = new org.apache.spark.sql.SQLContext(sc)
val dataframe_mysql = sqlcontext.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/DATABASE_NAME").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "TABLE_NAME").option("user", "USER_NAME").option("password", "PASSWORD").load()
dataframe_mysql.show()
감사해요.
업데이트: 이상적인 솔루션은 아니지만 이 링크에서 솔루션을 읽은 후 pip3 install mysqlclient를 작동시킬 수 있었습니다.
sudo ln -s /usr/lib64/libmariadbclient.a /usr/lib64/libmariadb.a
나는 여전히 Spark를 사용하고 싶다.
기본 SQLite 대신 슈퍼셋을 메인 BD로 사용하여 MariaDB를 연결했습니다.이것이 연결에 도움이 될 것입니다.
SQLAlchemist는 이 작업을 위해 추가 python lib가 필요합니다.저의 경우는 pymysql을 사용했습니다.설치가 완료되면(pip을 사용할 수 있음) 접속은 프리픽스 mysql+pymysql로 이루어지기 때문에 다음과 같이 됩니다.
'mysql+pymysql://user:password@host/dbname'
도움이 됐으면 좋겠다
언급URL : https://stackoverflow.com/questions/56814338/apache-superset-connection-to-mariadb-via-spark
'programing' 카테고리의 다른 글
null 값에 대해 jdk8 스트림을 관리하는 방법 (0) | 2023.02.04 |
---|---|
Linux에서 문자열 리터럴의 메모리 주소가 다른 것과 다른 이유는 무엇입니까? (0) | 2023.01.25 |
웅변적인 ORM 레벨 5 ID 배열 가져오기 (0) | 2023.01.25 |
문자열이 비어 있는지 확인하는 방법 (0) | 2023.01.25 |
명령줄 ubuntu 16.04에서 php 버전 전환 (0) | 2023.01.25 |