Spark Dataframe在性能方面如何优于Pandas Dataframe? - python

Closed. This question needs to be more focused。它当前不接受答案。

想改善这个问题吗?更新问题,使其仅通过editing this post专注于一个问题。

去年关闭。

Improve this question

任何人都可以解释一下,Spark Dataframe在执行时间方面比Pandas Dataframe更好。我正在处理中等容量的数据并进行python函数驱动的转换

例如,我的数据集中有一个数字从1到100,000的列,并且想要执行基本的数字操作-创建一个新列,该列是现有数字列的多维数据集。

from datetime import datetime
import numpy as np
import pandas as pd

def cube(num):
    return num**3

array_of_nums = np.arange(0,100000)

dataset = pd.DataFrame(array_of_nums, columns = ["numbers"])

start_time = datetime.now() 
# Some complex transformations...
dataset["cubed"] = [cube(x) for x in dataset.numbers]
end_time = datetime.now() 

print("Time taken :", (end_time-start_time))

输出是

Time taken : 0:00:00.109349

如果我将Spark Dataframe与10个工作节点一起使用,是否可以预期以下结果? (这是Pandas DataFrame花费的时间的1/10)

Time taken : 0:00:00.010935

参考方案

1)未分发熊猫数据帧,并且已分发Spark的DataFrame。
->因此,您将无法从Pandas DataFrame中获得并行处理的好处,并且对于大量数据,Pandas DataFrame中的处理速度会降低。

2)Spark DataFrame可以确保您的容错能力(它具有弹性),而Pandas DataFrame则不能保证。
->因此,如果您的数据处理在两次处理之间被中断/失败,则spark可以从谱系(从DAG)重新生成失败的结果集。熊猫不支持容错功能。您需要实现自己的框架以确保这一点。

Python GPU资源利用 - python

我有一个Python脚本在某些深度学习模型上运行推理。有什么办法可以找出GPU资源的利用率水平?例如,使用着色器,float16乘法器等。我似乎在网上找不到太多有关这些GPU资源的文档。谢谢! 参考方案 您可以尝试在像Renderdoc这样的GPU分析器中运行pyxthon应用程序。它将分析您的跑步情况。您将能够获得有关已使用资源,已用缓冲区,不同渲染状态上…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

python:ConfigParser对象,然后再阅读一次 - python

场景:我有一个配置文件,其中包含要执行的自动化测试的列表。这些测试是长期循环执行的。   配置文件的设计方式使ConfigParser可以读取它。由于有两个三个参数,因此我需要通过每个测试。现在,此配置文件由script(s1)调用,并且按照配置文件中的列表执行测试。Script(s1)第一次读取配置,并且在每次测试完成后都会执行。阅读两次的要求:由于可能会…

Python exchangelib在子文件夹中读取邮件 - python

我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…

如何用浮点常数对PySpark数据帧的每个非字符串列进行除法或相乘? - python

我的输入数据框如下所示from pyspark.sql import SparkSession spark = SparkSession.builder.appName("Basics").getOrCreate() df=spark.createDataFrame(data=[('Alice',4.300,None)…