Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PySpark(本地)编程与Jupyter笔记本上的Python编程_Python_Apache Spark_Pyspark - Fatal编程技术网

PySpark(本地)编程与Jupyter笔记本上的Python编程

PySpark(本地)编程与Jupyter笔记本上的Python编程,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,最近我一直在使用pySpark,所以我已经习惯了它的语法、不同的API和HiveContext函数。很多时候,当我开始做一个项目时,我并不完全知道它的范围是什么,或者输入数据的大小,所以有时我最终需要分布式计算的全部功能,而在其他项目上,我最终得到一些脚本,这些脚本可以在我的本地机器上正常运行 我的问题是,与常规Python/Pandas相比,使用pySpark作为我的主要语言进行编码是否存在缺点,即使只是进行一些探索性分析?我这样问主要是因为在语言之间切换的认知工作,以及如果我确实需要分发工作

最近我一直在使用pySpark,所以我已经习惯了它的语法、不同的API和HiveContext函数。很多时候,当我开始做一个项目时,我并不完全知道它的范围是什么,或者输入数据的大小,所以有时我最终需要分布式计算的全部功能,而在其他项目上,我最终得到一些脚本,这些脚本可以在我的本地机器上正常运行

我的问题是,与常规Python/Pandas相比,使用pySpark作为我的主要语言进行编码是否存在缺点,即使只是进行一些探索性分析?我这样问主要是因为在语言之间切换的认知工作,以及如果我确实需要分发工作,那么将代码从Python移动到pySpark的麻烦


就库而言,我知道Python会有更多的功能,但在我目前的项目中,目前为止没有使用Spark未涵盖的库,因此我最关心的是速度、内存和任何其他可能的缺点;在我的本地机器上,哪个性能更好?

我的情况与此类似。我们已经用Python(主要是Pandas)完成了大部分开发,现在我们正进入Spark,因为我们的环境已经成熟到可以使用它的程度


我看到PySpark的最大缺点是,我们必须在整个数据帧上执行操作,但PySpark不直接支持库或方法。例如,当尝试使用生命周期库时,PySpark不支持这一点,因此我们要么必须将PySpark数据帧转换为Pandas数据帧(这会花费大量时间并失去集群的优势),要么将代码转换为PySpark可以在PySpark数据帧中使用和并行的内容

我也处于类似的情况。我们已经用Python(主要是Pandas)完成了大部分开发,现在我们正进入Spark,因为我们的环境已经成熟到可以使用它的程度


我看到PySpark的最大缺点是,我们必须在整个数据帧上执行操作,但PySpark不直接支持库或方法。例如,当尝试使用生命周期库时,PySpark不支持这一点,因此我们要么必须将PySpark数据帧转换为Pandas数据帧(这会花费大量时间并失去集群的优势),要么将代码转换为PySpark可以在PySpark数据帧中使用和并行的内容

在我看来,我看不出有任何缺点。即使使用PySpark,您仍然可以在需要时使用Python库。因此,考虑到您必须使用非常大的数据集,我绝对建议您继续使用PySpark。在我看来,我看不出任何缺点。即使使用PySpark,您仍然可以在需要时使用Python库。因此,考虑到您必须处理非常大的数据集,我绝对建议您继续使用PySpark。另一个缺点取决于您喜欢如何使用Python—如果您是分析师,您喜欢经常查看数据。这在PySpark上需要花费大量时间-只要在PySpark上拖动.take()或.show()方法,集群就会将所有内容拖回边缘节点,而Pandas上的.head()方法只需几秒钟。另一个缺点取决于您喜欢如何使用Python-如果您是分析师,您喜欢经常查看数据。这在PySpark上需要花费大量时间-只要在PySpark上拖动.take()或.show()方法,就可以将所有内容拖回边缘节点,而在Pandas上拖动.head()方法只需几秒钟。