2017-02-10 13 views
0

複数の列を持つrddがあり、 "age"という列を抽出する必要があります。私は試しました:RDD列を新しいRDDに抽出する

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
+0

私のため正常に動作しますか? –

+0

スタックトレースの重要なコンポーネントをダンプしません。 – Chinny84

答えて

0

行をインポートしていますか?行をインポートすると、あなたがDFに何をしますか投稿でき ...私はあなたのコードを試してみましたが、罰金をやって

from pyspark.sql import Row 

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

、あなたは、scala内の対応するコードスニペットは、データフレームの上に直接select列であることができます。

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

出力:

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

希望はこのことができます...

関連する問題