mysql - 如何通过pyspark中的索引获取单元格值?
问题描述
我想让单元格值传递给 SQL 查询中的 where 条件。下面一个是我的数据框ab。数据框只有不同的值
+----------+--------+
|Months | YEAR|
+----------+--------+
| 3| 2018|
| 2| 2014|
+----------+--------+
基于这些我需要将值传递给 SQL 查询
for i in range(0,ab.count()):
query = "select * from customer where YEAR= "+ab['YEAR'][i]+" and Months="+ab['Months'][i]
df = sqlContext.read.format("jdbc").options(url="jdbc:mysql://localhost:3306/ohcdemo",driver="com.mysql.jdbc.Driver",query=query,user="root",password="root").load()
并且它应该通过编写 SQL 查询来附加到数据框,而 SQL 查询无法获取值到 SQL 查询中
解决方案
Spark 数据帧没有排序,因此指定索引是没有意义的。此外,您还将在 for 循环的每次迭代中覆盖数据帧。
为了做你想做的事,我建议做一个join
. 请注意,我更改query
了 JDBC 阅读器中的参数。
df = sqlContext.read.format("jdbc").options(
url="jdbc:mysql://localhost:3306/ohcdemo",
driver="com.mysql.jdbc.Driver",
query="select * from customer",
user="root",
password="root"
).load()
joined_df = ab.join(df, ['Months', 'YEAR'])
推荐阅读
- php - PHP Nullable 类型和函数参数
- javascript - 如何仅更改 ag-heder-column 标题?
- python - 如果在连接信号之前调用 Slot,则无法连接到 QTimer Slot 中发送的信号
- sql - SQL Select 基于另一个表的条件
- php - 使用 SQL 数据库中的值创建折线图
- windows - Windows PATH 似乎在 Git Bash 中损坏了
- reactjs - 在子进程中调用 useState 钩子 - 状态数据为空
- r - 切割功能的多个条件(中断)
- sql - 案例语句逻辑和子字符串
- apache-spark - 如何在 Java 中使用 Spark typedLit 函数