作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从存储在本地磁盘上的 SQLLite .db 文件加载表。在 PySpark 中有什么干净的方法可以做到这一点吗?
目前,我正在使用一种可行但不够优雅的解决方案。首先,我通过 sqlite3 使用 pandas 阅读了表格。一个问题是在过程中模式信息没有传递(可能是也可能不是问题)。我想知道是否有一种不使用 Pandas 的直接加载表的方法。
import sqlite3
import pandas as pd
db_path = 'alocalfile.db'
query = 'SELECT * from ATableToLoad'
conn = sqlite3.connect(db_path)
a_pandas_df = pd.read_sql_query(query, conn)
a_spark_df = SQLContext.createDataFrame(a_pandas_df)
似乎有一种使用 jdbc 来执行此操作的方法,但我还没有弄清楚如何在 PySpark 中使用它。
最佳答案
首先,您需要在路径中使用 JDBC 驱动程序 jar 启动 pyspark下载 sqllite jdbc 驱动程序并在下面提供 jar 路径。 https://bitbucket.org/xerial/sqlite-jdbc/downloads/sqlite-jdbc-3.8.6.jar
pyspark --conf spark.executor.extraClassPath=<jdbc.jar> --driver-class-path <jdbc.jar> --jars <jdbc.jar> --master <master-URL>
上面pyspark命令的解释,看下面的帖子
Apache Spark : JDBC connection not working
现在这是你会怎么做:-
现在要读取sqlite数据库文件,只需将其读入spark dataframe
df = sqlContext.read.format('jdbc').\
options(url='jdbc:sqlite:Chinook_Sqlite.sqlite',\
dbtable='employee',driver='org.sqlite.JDBC').load()
df.printSchema()
查看您的模式。
完整代码:- https://github.com/charles2588/bluemixsparknotebooks/blob/master/Python/sqllite_jdbc_bluemix.ipynb
谢谢,查尔斯。
关于python - 如何从 PySpark 的 SQLite 数据库文件加载表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38985350/
我是一名优秀的程序员,十分优秀!