gpt4 book ai didi

python - 如何使用集群中的多个节点处理海量数据——python

转载 作者:可可西里 更新时间:2023-11-01 16:43:04 32 4
gpt4 key购买 nike

我有一个 15 节点的集群,我计划使用它来处理每天 9000 万行(Hive 表)范围内的数据。数据作为配置单元表存在于其中一个节点中,我正在使用类似以下命令的命令,

with hive.connect(host = 'hostname of that node', port= 10000, authMechanism='LDAP', user='username', password='pass') as conn:
with conn.cursor() as cur:
cur.execute('select * from tablename')
do_not_touch_this_data = pd.DataFrame(cur.fetch())

这里的问题是查询运行了 8 个多小时以将所有数据加载到 python 中。这是因为包获取所有数据并将其加载到该特定节点的内存中。即使在加载后,我什至无法运行计数/EDA 等基本命令。每个命令都需要花费很多时间。这是因为 15 节点集群中此特定节点的 128 GB RAM 过载。

我也想利用其他节点的内存来读取/处理/对数据进行 EDA。任何人都可以建议一种在 python 中使用这些节点的方法,以便命令运行得更快并且我能够使用所有节点吗?我是分布式计算的初学者,我猜应该有一种方法可以利用所有节点。另外,将所有数据读入 python 内存是否是一种好做法?

感谢帮助

最佳答案

分布式系统是一个庞大而复杂的主题,最好留给专家处理。您正在使用 Pyhon、Pandas 和 Hive。您应该只切换到 Spark,它有自己的 DataFrame 抽象,类似于 Pandas,支持从 Hive 表中读取数据,但会为您处理跨服务器的数据分发。您应该能够轻松地将您在 Pandas 中执行的任何操作直接转换为 Spark。

关于python - 如何使用集群中的多个节点处理海量数据——python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39028535/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com