我正在处理约 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/