1
私はJupyterノートブックでsparkを実行しています(jupyter-scalaカーネルを使用しています)。私はString型の列を持つデータフレームを持っており、これらの値をInt型として新しいデータフレームが必要です。私はこの投稿からすべての答えを試しました:Sparkデータフレームの列タイプを変更するとエラーになる
How to change column types in Spark SQL's DataFrame? 、私はこのエラーメッセージを取得しています。特に
org.apache.spark.SparkException: Job aborted due to stage failure
:
org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 43, Column 44: Decimal
は、だから私は行って、ライン43を見て:
/* 043 */ Decimal tmpDecimal6 = Decimal.apply(new java.math.BigDecimal(primitive5.toString()));
は、しかし、私はエラーを取得しておきます
これまで私が試したことは何も働いていませんでした。ここ
は単純な例である:
castColumnToが上記ポストにマーティンセンヌによって示唆されるように定義されるval dF = sqlContext.load("com.databricks.spark.csv", Map("path" -> "../P80001571-ALL.csv", "header" -> "true"))
val dF2 = castColumnTo(dF, "contbr_zip", IntegerType)
dF2.show
val dF = sqlContext.load("com.databricks.spark.csv", Map("path" ->
:
object DFHelper
def castColumnTo(df: DataFrame, cn: String, tpe: DataType) : DataFrame = {
df.withColumn(cn, df(cn).cast(tpe))
}
}
これは誤りである:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 3.0 failed 1 times, most recent failure: Lost task 0.0 in stage 3.0 (TID 3, localhost): java.util.concurrent.ExecutionException: java.lang.Exception: failed to compile: org.codehaus.commons.compiler.CompileException: File 'generated.java', Line 97, Column 45: Decimal
行97は次のようになります。
Decimal tmpDecimal18 = Decimal.apply(new java.math.BigDecimal(primitive17.toString()));
[mcve] – zero323