首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对DASK中的列中的每个值运行mysql查询

对DASK中的列中的每个值运行mysql查询
EN

Stack Overflow用户
提问于 2020-03-18 22:13:47
回答 1查看 116关注 0票数 1

我有一个包含用户id的CSV文件。此CSV文件作为dask-dataframe导入。进入数据帧后,我需要为id列中的每个条目获取该user-id,并在其上运行一个SQL查询来获取该user -id的用户名,并将其添加到新列中的dataframe。我有几个这样的列需要获取。

我不确定对DASK数据帧中的值运行select查询的dask方法是什么。我该怎么做呢?我不想走命令式路线,并使用for循环来解决它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-18 23:17:23

这还不是一个完整的答案,但我还不能评论

在一个循环中运行多个查询效率很低,最好只运行一个查询,将数据库中的所有用户-id用户名对放到另一个数据帧中,然后使用Dask的merge方法连接user_id列上的两个数据帧。https://docs.dask.org/en/latest/dataframe-joins.html

我对Dask没有太多的经验,我的大部分经验都是关于Pandas的,所以可能会有比这更多的东西,但大致是这样的:

代码语言:javascript
复制
import dask.dataframe as dd
import pandas as pd

# my_db_connection using whatever database connector you happen to be using
dask_df == dd.read_csv("your_csv_file.csv")
user_df = pandas.read_sql("""
    SELECT user_id, username
    FROM user_table
    """, con=my_db_connection
)

# Assuming both dataframes use "user_id" as the column name, 
# if not use right_on and left_on arguments
merged_df = dask_df.merge(user_df, how="left", on="user_id")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60741353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档