4

sparkr.session()私の spark r 1.6 コードは spark2.0 で動作しません。sqlcontext パラメータを渡す代わりに作成するなどの必要な変更を行いましたsparkr.init()…</p>

以下のコードでは、カップルフォルダーからデータフレームにデータをロードしています

動作するspark1.6のread.df

sales <- read.df(sqlContext, path= "gs://dev.appspot.com/myData/2014/20*,gs://dev.appspot.com/myData/2015/20*", source = "com.databricks.spark.csv", delimiter
="\t")

動作しない spark2.0 の read.df

sales <- read.df("gs://dev.appspot.com/myData/2014/20*,gs://dev.appspot.c
om/myData/2015/20*", source = "com.databricks.spark.csv", delimiter="\t")

上記の行は次のエラーをスローします。

6/09/25 19:28:52 ERROR org.apache.spark.api.r.RBackendHandler: loadDF on org.apache.spark.sql.api.r.SQLUtils faile d Error in invokeJava(isStatic = TRUE, className, methodName, ...) :    org.apache.spark.sql.AnalysisException: **Path does not exist: gs://dev.appspot.com/myData/2014/ 20*,gs://dev.appspot.com/myData/2015/20***;
        at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$12.apply(DataSource.scala:357)
        at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$12.apply(DataSource.scala:350)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
        at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
        at scala.collection.immutable.List.foreach(List.scala:381)
        at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
        at scala.collection.immutable.List.flatMap(List.scala:344)
        at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:350)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:149)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:122 Calls: read.df -> dispatchFunc -> f -> callJStatic -> invokeJava Execution halted 16/09/25 19:28:53 INFO org.spark_project.jetty.server.ServerConnector: Stopped ServerConnector@148bd6fd{HTTP/1.1}{0 .0.0.0:4040}
4

1 に答える 1

1

spark2.0 read.df は、ファイル名に「,」(コンマ) が含まれるファイルの読み取りに失敗します。

私が生成したデータ ファイルのファイル名には、次のようなカンマが含まれています。 201448-0,004 201448-0,005 201448-0,006

問題をデバッグするのに苦労した後、ファイル名から「、」を削除すると、最終的にデータの読み取りが開始されました。

于 2016-09-26T15:31:15.220 に答える