1
これはSpark 1.6.xです。私は回避策を探しています。RDDから作成したDataFrameでregisterTempTableが失敗する
私はDataFrame
の基底RDDからDataFrame
を作成する機能を持っている:
def rddAndBack(sc: SparkContext, df: DataFrame) : DataFrame = {
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext.createDataFrame(df.rdd, df.schema)
}
私はカップルのデータフレームを作成して登録します。
val df = sc.parallelize(Array(1, 2, 3)).toDF("foo")
val df2 = rddAndBack(sc, df)
df.registerTempTable("df")
df2.registerTempTable("df2")
これは動作します:
scala> sqlContext.sql("SELECT * FROM df")
res23: org.apache.spark.sql.DataFrame = [foo: int]
しかし、これはありません:
scala> sqlContext.sql("SELECT * FROM df2")
org.apache.spark.sql.AnalysisException: Table not found: df2; line 1 pos 14
at org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42)
これは2.xでも問題なく動作しますが、1.6で回避策を見つける必要があります。