当前位置: 代码迷 >> python >> 将RDD列提取到新的RDD中
  详细解决方案

将RDD列提取到新的RDD中

热度:101   发布时间:2023-06-13 13:39:42.0

我有一个带有多列的rdd,想提取一个称为“ age”的列。 我试过了:

rddAge = df.rdd.map(lambda row: Row(age=row.age))

该代码不返回错误。 但是,当我只是简单地尝试执行rddAge.count()时,就会得到很长的回溯:

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 29.0 failed 10 times, most recent failure: Lost task 0.9 in stage 29.0 (TID 365, yp-spark-dal09-env5-0048): org.apache.spark.api.python.PythonException: Traceback (most recent call last): ...

我做错了吗?

谢谢

Spark 2 ,您可以直接select数据框顶部的列, scala的相应代码段为:

val ageDF = df.select("age")
ageDF.printSchema()

输出:

root
 |-- age: long (nullable = true)

希望这可以帮助...

您要导入Row吗? 导入行对我来说很好

from pyspark.sql import Row

rddAge = df.rdd.map(lambda row: Row(age=row.rddAge))
rddAge.count()
  相关解决方案