我确定这是一个简单的SQLContext问题,但我在Spark文档或Stackoverflow中找不到任何答案
我想从MySQL上的SQL查询创建Spark Dataframe
例如,我有一个复杂的MySQL查询
SELECT a.X,b.Y,c.Z FROM FOO as a JOIN BAR as b ON ... JOIN ZOT as c ON ... WHERE ...
Run Code Online (Sandbox Code Playgroud)
我想要一个包含X,Y和Z列的Dataframe
我想出了如何将整个表加载到Spark中,我可以将它们全部加载,然后在那里进行加入和选择.然而,这是非常低效的.我只想加载我的SQL查询生成的表.
这是我目前对代码的近似,但不起作用.Mysql-connector有一个"dbtable"选项,可用于加载整个表.我希望有一些方法来指定查询
val df = sqlContext.format("jdbc").
option("url", "jdbc:mysql://localhost:3306/local_content").
option("driver", "com.mysql.jdbc.Driver").
option("useUnicode", "true").
option("continueBatchOnError","true").
option("useSSL", "false").
option("user", "root").
option("password", "").
sql(
"""
select dl.DialogLineID, dlwim.Sequence, wi.WordRootID from Dialog as d
join DialogLine as dl on dl.DialogID=d.DialogID
join DialogLineWordInstanceMatch as dlwim o n dlwim.DialogLineID=dl.DialogLineID
join WordInstance as wi on wi.WordInstanceID=dlwim.WordInstanceID
join WordRoot as wr on wr.WordRootID=wi.WordRootID
where …Run Code Online (Sandbox Code Playgroud) 我准备第一次使用jdbc,我正在安装MySQL的jdbc驱动程序.
但是,我不清楚哪些文件移动到Eclipse中的WEB_INF/lib文件夹.它们似乎都包含相同的内容,并且包含在MySQL连接器的下载zip文件中.
我已经到处搜索,但一直无法找到任何文档来解释使用哪些文件.
有人可以举个例子来理解这个吗?
执行查询后,MySQLCursorBuffered游标从服务器获取整个结果集并缓冲行.对于使用缓冲游标执行的查询,诸如fetchone()之类的行获取方法从缓冲行集中返回行.对于非缓冲游标,在调用行读取方法之前,不会从服务器获取行.在这种情况下,您必须确保在执行同一连接上的任何其他语句之前获取结果集的所有行,否则将引发InternalError(未读结果)异常.
谢谢
import mysql.connector
config = {
'user' : 'root',
'passwd' : ' ',
'host' : 'localhost',
'raise_on_warnings' : True,
'use_pure' : False,
}
cnx = mysql.connector.connect(**config)
cnx.close()
Run Code Online (Sandbox Code Playgroud)
我用这段代码来检查我使用mysql提供的安装程序安装的mysql包
我在终端运行文件,结果是,
Traceback (most recent call last):
File "/Users/Krishna/Documents/check.py", line 1, in <module>
import mysql.connector
ImportError: No module named 'mysql'
Run Code Online (Sandbox Code Playgroud)
非常感谢帮助.
mysql macos mysql-connector python-3.x mysql-connector-python
我正在尝试通过 pandas 数据框将从网站检索的数据存储到 MySQL 数据库中。但是,当我进行函数调用时df.to_sql(),编译器会给我一条错误消息:AttributeError: 'Connection' object has no attribute 'connect'。我测试了几次,我确信既不存在连接问题,也不涉及表存在问题。代码本身有什么问题吗?我正在使用的代码如下:
from sqlalchemy import create_engine, text
import pandas as pd
import mysql.connector
config = configparser.ConfigParser()
config.read('db_init.INI')
password = config.get("section_a", "Password")
host = config.get("section_a", "Port")
database = config.get("section_a", "Database")
engine = create_engine('mysql+mysqlconnector://root:{0}@{1}/{2}'.
format(password, host, database),
pool_recycle=1, pool_timeout=57600, future=True)
conn = engine.connect()
df.to_sql("tableName", conn, if_exists='append', index = False)
Run Code Online (Sandbox Code Playgroud)
完整的堆栈跟踪如下所示:
Traceback (most recent call last):
File "/Users/chent/Desktop/PFSDataParser/src/FetchPFS.py", line 304, in <module>
main()
File "/Users/chent/Desktop/PFSDataParser/src/FetchPFS.py", line 287, in main
insert_to_db(experimentDataSet, …Run Code Online (Sandbox Code Playgroud) 我有一个表使用3个外键到其他表.当我执行左连接时,我得到重复的列.MySQL表示USING语法将减少重复列,但没有多个键的示例.
鉴于:
mysql> describe recipes;
+------------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+------------------+------+-----+---------+-------+
| ID_Recipe | int(11) | NO | PRI | NULL | |
| Recipe_Title | char(64) | NO | | NULL | |
| Difficulty | int(10) unsigned | NO | | NULL | |
| Elegance | int(10) unsigned | NO | | NULL | |
| Quality | int(10) unsigned | NO | | NULL | …Run Code Online (Sandbox Code Playgroud) 有没有人在这里使用MySQL与实体框架4.0和存储过程?当我添加SP时,它不会显示我需要输入的任何字段.我也看不到手动添加它们的方法.当我单击"功能导入映射"时,它只是说"在实体设计器模型浏览器上选择实体或关联来编辑它的映射".
任何帮助表示赞赏.我使用的是.NET Connector 6.3.6
.net mysql stored-procedures mysql-connector entity-framework-4
我正在构建一个Maven Java 1.8项目,其中我将MySQL Connector作为依赖项包含在内:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我有一个包含MySQL连接的单例,因此当应用程序启动时,MySQL连接器被触发但我得到了我正在使用的驱动程序的ClassNotFoundException:com.mysql.cj.jdbc.Driver.
我正在使用的JDBC URL是:
JDBC:MySQL的://本地主机:3306/mydb的autoReconnect的=真useSSL = FALSE
我正在使用IntelliJ IDEA(2017.2)IDE.
我已经检查了文件 - >项目结构 - >库 - >我看到"Maven:mysql:mysql-connector-java:5.1.392"作为库.
我还检查了文件 - >项目结构 - >工件 - >并在myapp.war展开 - > WEB-INF - > lib - > Maven:mysql:mysql-connector-java:5.1.39存在.
从View - > Tool Windows - > Database,我成功地建立了一个MySQL连接,下载了建议的驱动程序(MySQL Connector 5.1.35).
如何告诉应用程序它必须在运行时加载MySQL驱动程序?
提前致谢
jdbc intellij-idea mysql-connector maven classnotfoundexception
我尝试在 mac 上的虚拟环境中安装 mysqlclient ,使用以下命令:
pip3 install mysqlclient
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Collecting mysqlclient
Using cached https://files.pythonhosted.org/packages/a5/e1/e5f2b231c05dc51d9d87fa5066f90d1405345c54b14b0b11a1c859020f21/mysqlclient-2.0.1.tar.gz
Installing collected packages: mysqlclient
Running setup.py install for mysqlclient ... error
ERROR: Command errored out with exit status 1:
command: /Users/josephestes/Development/apps/vmstracker/tutorial-env/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/9_/hr4rf2_914q_g933hy7z4n5h0000gn/T/pip-install-29km7sh3/mysqlclient/setup.py'"'"'; __file__='"'"'/private/var/folders/9_/hr4rf2_914q_g933hy7z4n5h0000gn/T/pip-install-29km7sh3/mysqlclient/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /private/var/folders/9_/hr4rf2_914q_g933hy7z4n5h0000gn/T/pip-record-0xkt41xv/install-record.txt --single-version-externally-managed --compile --install-headers /Users/josephestes/Development/apps/vmstracker/tutorial-env/include/site/python3.8/mysqlclient
cwd: /private/var/folders/9_/hr4rf2_914q_g933hy7z4n5h0000gn/T/pip-install-29km7sh3/mysqlclient/
Complete output (118 lines):
running install
running build
running build_py
creating build
creating build/lib.macosx-10.14.6-x86_64-3.8
creating build/lib.macosx-10.14.6-x86_64-3.8/MySQLdb
copying MySQLdb/__init__.py -> build/lib.macosx-10.14.6-x86_64-3.8/MySQLdb
copying …Run Code Online (Sandbox Code Playgroud) 我正在尝试从源代码构建mysql-connector-c(根据此处的说明)并在我的应用程序中静态链接库.然而,我收到以下警告,我想知道是否有人有任何想法,为什么这是:
/path/to/lib/libmysqlclient.a(mf_pack.c.o): In function `unpack_dirname':
mf_pack.c:(.text+0x90b): warning: Using 'getpwnam' in statically linked
applications requires at runtime the shared libraries from the glibc version
used for linking
/path/to/lib/libmysqlclient.a(libmysql.c.o): In function `read_user_name':
libmysql.c:(.text+0x2b06): warning: Using 'getpwuid' in statically linked
applications requires at runtime the shared libraries from the glibc version
used for linking
/path/to/lib/libmysqlclient.a(mf_pack.c.o): In function `unpack_dirname':
mf_pack.c:(.text+0x916): warning: Using 'endpwent' in statically linked
applications requires at runtime the shared libraries from the glibc version
used for linking
/path/to/lib/libmysqlclient.a(client.c.o): In …Run Code Online (Sandbox Code Playgroud) mysql-connector ×10
mysql ×6
jdbc ×2
macos ×2
python ×2
python-3.x ×2
sql ×2
.net ×1
apache-spark ×1
database ×1
gcc ×1
java ×1
left-join ×1
linker ×1
maven ×1
mysql-python ×1
mysqli ×1
pandas ×1
scala ×1
sqlalchemy ×1