python - 在一台大型计算机上独立使用 spark 是否有意义?

标签 python concurrency apache-spark ipython-notebook

我正在处理约 120Gb 的 csv 文件(每个文件从 1Gb 到 20Gb)。我使用的是 220Gb Ram 计算机和 36 个线程。

我想知道在独立模式下使用 spark 进行此分析是否有意义?我真的很喜欢 spark plus(与 pyspark)的自然并发性我有一个很好的笔记本环境可以使用。

我想做连接/聚合类型的事情并在转换后的数据集上运行机器学习。像 pandas 这样的 Python 工具只想使用 1 个线程,这似乎是一种巨大的浪费,因为使用所有 36 个线程必须快得多..

最佳答案

要回答您的问题,是的,如果您只有一个节点可用,尤其是像您描述的那样强大的节点(只要它能够处理数据的大小),它确实有意义。

我建议在“本地”模式下运行您的应用程序,因为您只使用 1 个节点。运行 ./spark-submit 时,指定:

--master local[*]

如:

./spark-submit --master local[*] <your-app-name> <your-apps-args>

这将使用所有可用内核在本地节点上运行应用程序。

请记住,在您的应用程序中,您必须指定您希望应用程序使用的执行程序内存量;默认情况下这是 512m。如果您想利用所有内存,您可以将其更改为 spark-submit 的参数或在创建 SparkConf 对象时在应用程序代码中进行更改。

关于python - 在一台大型计算机上独立使用 spark 是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31457831/

相关文章:

python - 在不阅读的情况下查找 csv 中的行数

python - 使用 Python 创建家谱

java - CopyOnWriteArrayList 是否足以在 Servlet Session 范围内保持购物车线程安全

scala - Spark : Writing data frame to s3 bucket

python - DocBin to_bytes/to_disk 被杀死

python - 如何在 Windows XP/7 上用 Python 3 将文件打印到纸上?

java - 在 lockObject 上同步和使用它作为锁有什么区别?

java - 轮询多个线程和 CPU 使用率

apache-spark - Spark升级到2.4.5时出现NoSuchMethodError

apache-spark - 如何使用 Spark 对象获取 Hive 表的位置值?