【问题标题】:Spark UDF Causing Job AbortSpark UDF 导致作业中止
【发布时间】:2020-01-16 21:50:10
【问题描述】:

我正在尝试对数据框执行非常简单的 UDF 操作,但遇到了错误

我正在处理一个直接来自 PySpark API 的示例,唯一的区别是我使用了不同的数据(而我的数据不起作用)

这是我的 DF:

parq.show(3)

+-------------------+---+----------+---------+--------------------+------+--------------+----------------+---------+---------+---------+-------------------+--------+
|  registration_dttm| id|first_name|last_name|               email|gender|    ip_address|              cc|  country|birthdate|   salary|              title|comments|
+-------------------+---+----------+---------+--------------------+------+--------------+----------------+---------+---------+---------+-------------------+--------+
|2016-02-03 07:55:29|  1|    Amanda|   Jordan|    ajordan0@com.com|Female|   1.197.201.2|6759521864920116|Indonesia| 3/8/1971| 49756.53|   Internal Auditor|   1E+02|
|2016-02-03 17:04:03|  2|    Albert|  Freeman|     afreeman1@is.gd|  Male|218.111.175.34|                |   Canada|1/16/1968|150280.17|      Accountant IV|        |
|2016-02-03 01:09:31|  3|    Evelyn|   Morgan|emorgan2@altervis...|Female|  7.161.136.94|6767119071901597|   Russia| 2/1/1960|144972.51|Structural Engineer|        |
+-------------------+---+----------+---------+--------------------+------+--------------+----------------+---------+---------+---------+-------------------+--------+

这是相关的架构条目:

parq.printSchema()
 |-- salary: double (nullable = true)

然后做一个简单的 udf 操作来平方工资列

square_udf = F.udf(lambda z: z**2, DoubleType())
parq.select(square_udf(F.col("salary"))).show(10)

这会产生: org.apache.spark.SparkException: Job aborted due to stage failure ...

在我看来,如果有人能澄清我的想法,那绝对没有理由这样做。

【问题讨论】:

  • 你能提供一些parq 数据框的样本吗?
  • @Gocht 我已经更新了我的帖子,谢谢
  • 我已经测试了你的代码,没有出现错误。这可能与您的环境有关。

标签: python apache-spark pyspark apache-spark-sql user-defined-functions


【解决方案1】:

感谢@Gocht 测试我的代码并说它有效。我的工资列中有空值干扰,所以我先运行了这个:

parq_nn = parq.select("*").where("salary is not null")

成功了

【讨论】:

    猜你喜欢
    • 2014-06-29
    • 2016-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多