- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我使用 RDD 进行了几个项目之后,我开始使用数据集。我正在使用 Java 进行开发。
据我了解,列是不可变的 - 列没有映射函数,映射列的标准方法是使用 withColumn
添加列。
我的问题是,当我调用 withColumn 时到底发生了什么?有性能损失吗?我应该尝试尽可能少地进行 withColumn
调用,还是没有关系?
附带问题:当我调用任何其他行/列创建函数(例如explode 或pivot)时,是否会有性能损失?
最佳答案
与 DataFrame 交互的各种函数的性能都足够快,您永远不会遇到问题(或真正注意到它们)。
如果您了解 Spark 如何执行您在驱动程序中定义的转换,这将更有意义。当您调用各种转换函数(withColumn、select 等)时,Spark 实际上并没有立即执行任何操作。它只是注册您想要在其执行计划中运行的操作。在您调用操作(通常是为了获取结果或写出数据)之前,Spark 不会开始对您的数据进行计算。
了解您想要运行的所有操作允许 Spark 在实际运行之前对执行计划进行优化。例如,假设您使用 withColumn 创建一个新列,但在将数据写入文件之前删除该列。 Spark 知道它实际上永远不需要计算该列。
通常决定驱动程序性能的因素是:
关于爆炸和旋转的额外问题:
关于java - 在数据集上调用 withColumn 的成本是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47773637/
我有一个数据框(mydf),如下所示: +---+---+---+---+ | F1| F2| F3| F4| +---+---+---+---+ | t| y4| 5|1.0| | x| y
我在spark中写了一些代码如下: val df = sqlContext.read.json("s3n://blah/blah.gz").repartition(200) val newdf = d
我有一个包含 2 列的数据框:account_id 和 email_address,现在我想再添加一列 updated_email_address,我称之为email_address 上的函数以获取
我注意到我的代码存储库警告我在 for/while 循环中使用 withColumn 是一种反模式。为什么不推荐这样做?这不是PySpark API的正常使用吗? 最佳答案 我们在实践中注意到,在 f
在我使用 RDD 进行了几个项目之后,我开始使用数据集。我正在使用 Java 进行开发。 据我了解,列是不可变的 - 列没有映射函数,映射列的标准方法是使用 withColumn 添加列。 我的问题是
这个问题已经有答案了: Multiple condition filter on dataframe (2 个回答) 已关闭 3 年前。 我是 Pyspark 新手 我有这段代码: df2 = df.
我有一个 df,其中包含一列 type,并且我有两个列表 women = ['0980981', '0987098'] men = ['1234567', '4567854'] 现在我想根据 type
我正在为某些要求创建一个空数据框,当我在其上调用 withColumn 函数时,我得到了列,但数据为空,如下所示- schema = StructType([]) df = sqlContext.cr
我有一个包含列“col1”和“col2”的数据框 df。我想创建第三列,它使用其中一列作为指数函数。 df = df.withColumn("col3", 100**(df("col1")))*df(
我有一些使用 的原型(prototype) Scala 代码 .withColumn("column_name_dod", $"column_name".getItem("dod")) 我知道with
如何在多个 when 条件下实现以下目标。 from pyspark.sql import functions as F df = spark.createDataFrame([(5000, 'US'
当多个 withColumn 时,Spark 是执行一次还是多次传递数据?函数是链式的? 例如: val dfnew = df.withColumn("newCol1", f1(col("a")))
我正在使用 Spark 和 PySpark。我正在尝试实现等效于以下伪代码的结果: df = df.withColumn('new_column', IF fruit1 == fruit2 T
我有一个 DataFrame,它有多个列,其中一些是结构。像这样的事情 root |-- foo: struct (nullable = true) | |-- bar: string (n
今天早上我们将 Spark 版本从 2.2.0 更新到 2.3.0,我遇到了相当奇怪的问题。 我有一个 UDF(),计算 2 点之间的距离 private static UDF4 calcDistan
我有一个用户定义函数的问题,该函数是为连接来自一个数据帧的值而构建的,该数据帧与来自另一个数据帧的索引值相匹配。 以下是我尝试匹配的简化数据框: a_df: +-------+------+ | in
我有这样一个数据集: a = sc.parallelize([[1,2,3],[0,2,1],[9,8,7]]).toDF(["one", "two", "three"]) 我想要一个数据集,它添加一
我有一个具有以下结构的 Spark 数据框。 bodyText_token 具有标记(已处理/单词集)。我有一个定义关键字的嵌套列表 root |-- id: string (nullable =
如果我有一个名为 df 的 DataFrame,它看起来像: +---+---+ | a1+ a2| +---+---+ |foo|bar| |N/A|baz| +---+---+ 我期望: val
我使用的是 UCI 的成人年收入。 我有一个数据框,其中一列中有一个类别变量,我想将其分组为不同的类别(一些常见的特征工程)。 df.groupBy('education').count().show
我是一名优秀的程序员,十分优秀!