私のSpark 1.6アプリケーションでは、パーティションを選択して特定のパーティションのみをクエリするいくつかのコードがあります。私はこの使用してください:Apache Spark 1.6:単一パーティションをクエリすると、属性にエラーが発生する
val rdd = df.rdd.mapPartitionsWithIndex((idx, iter) => if (idx == 0) iter else Iterator(), true)
val newDF = sqlContext.createDataFrame(rdd, df.schema)
を
newDF.withColumn("newField", myUDF(df("oldField")).mapPartitions(...)
に、私は私に
resolved attribute(s) oldField#36 missing from idField#51L,oldField#52 in operator !Project [idField#51L,oldField#52,UDF(oldField#36) AS newField#53];
をそれを得るように、新しいmapPartitionsは、フィールド上で呼び出すと、私はその後、一緒にUDFを呼び出す場合"oldField"というフィールドが何らかの形で現れているようですが、新しいDataFrameを作成したためでしょうか? - 間違ったID(oldField#52
とoldField#36
を比較)。私の古いDataFrameとnewDF
のスキーマを印刷すると、どちらも同じように見えます。
このエラーを回避するにはどうすればよいですか(コード内の操作の順序を変更することはできませんが、現行の構造はあまり役に立ちません)。
はい!ありがとう!完璧に動作します!どうすれば... – navige