Я хотел бы просмотреть данные из Mariadb в Superset. Я думаю, что получение данных из Mariadb -> Spark -> Superset может быть лучшим решением, потому что я также буду использовать Spark с H2o Sparkling Water.
1. Я попытался pip3 установить mysqlclient , но получил эту ошибку:
ERROR: Command "/bin/python3 -u -c 'import setuptools, tokenize; ... failed with error code 1 in /tmp/pip-install-kslmastj/mysqlclient/
2. Я пробовал Spark с 2 файлами конфигурации, но я не думаю, что данные доступны в 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. Я читал о SQLAlchemy диалектах и PyHive . Я искал код надстройки и не могу определить, куда добавить внешние диалекты.
4. Я попробовал несколько конфигураций в файле конфигурации superset. Мне интересно, должен ли порт быть портом Spark.
SQLALCHEMY_DATABASE_URI = 'куст: // localhost: 4040 /'
5. Я попытался импортировать CSV-файл, но получил ошибку.
ПРИМЕЧАНИЕ: Я могу увидеть данные Mariadb в Spark, если введу их в приглашении scala, но не думаю, что это правильное решение.
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()
Спасибо
UPDATE:
Это не идеальное решение, но я смог заставить pip3 установить mysqlclient работать после прочтения решения по этой ссылке .
sudo ln -s /usr/lib64/libmariadbclient.a /usr/lib64/libmariadb.a
Я все еще хотел бы использовать Spark.