我想在Superset中查看Mariadb的数据。我认为从Mariadb --〉Spark --〉Superset中获取数据可能是最好的解决方案,因为我也会将Spark与H2O气泡水一起使用。
1.我已经尝试pip 3安装mysqlclient,但出现此错误:
ERROR: Command "/bin/python3 -u -c 'import setuptools, tokenize; ... failed with error code 1 in /tmp/pip-install-kslmastj/mysqlclient/
**2.**我尝试使用2个配置文件访问Spark,但我认为Spark或Spark SQL无法访问数据。
文件1../conf/Spark默认值.conf
spark.driver.extraClassPath = /usr/share/java/mysql-connector-java.jar
spark.executor.extraClassPath = /usr/share/java/mysql-connector-java.jar
文件2../conf/配置单元站点. 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.**我尝试了超集配置文件中的一些配置。我想知道端口是否应该是Spark端口。SQLALCHEMY_DATABASE_URI = 'hive://localhost:4040/'
**5.**我尝试导入csv文件,但出现错误。
**注意:**如果我在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()
2条答案
按热度按时间brgchamk1#
我已经连接了一个带有超集的MariaDB作为我的主BD,而不是默认的SQLite,可能这会帮助你连接。
SQLAchemist需要一个额外的python库来完成这个任务,在我的例子中我使用了pymysql。一旦安装(你可以使用pip),连接将带有前缀mysql+pymysql,所以它将具有以下外观:
0qx6xfy62#
将OP的部分解决方案从问题迁移到答案:
这不是一个理想的解决方案,但我能够让pip3安装mysqlclient在阅读了这个link的解决方案后工作。