Env: Спарк 1.6, ScalaПроблема с испарением tempTable, таблицы не существует? как решить?
Привет
Я создал пустой dataframe [sessionTrend], и сделал unionAll с существующим dataframe [DF2, созданный из таблицы базы данных SQL Server], привело dataframe, sessionTrend работает нормально , Но после регистрации sessionTrend dataframe в качестве временной таблицы, не удалось выполнить инструкцию select из-за таблицы ошибок, не существует.
val schemaRDD = StructType(
StructField("SessionCount", IntegerType, true) ::
StructField("SampleTime", TimestampType, false) ::
StructField("Program_ID", IntegerType, true) :: Nil)
var sessionTrend = sqlcontext.createDataFrame(sc.emptyRDD[Row], schemaRDD)
val run_id_q= new Queue[Int]
for (i <- 1 to 10)
{
run_id_q += i
sessionTrend = sessionTrend.unionAll(DF2) // DF2 is a data set with same schema as sessionTrend
if (run_id_q.length >=3) {
v_run_id = run_id_q.dequeue()
sessionTrend = sessionTrend.filter(sessionTrend("run_id")>v_run_id)
}
sessionTrend.show() // working fine and displaying expected result
sessionTrend.registerTempTable("memTBL")
val myData= hivecontext.sql("select * from memTBL") // ERROR: Table memTBL does not exit
}
любое предложение для решения этой проблемы? На самом деле, я пытаюсь создать dataframe, который всегда будет иметь последние 3 записи.
Благодаря
Хоссейн
использовать 'sqlcontext', потому что вы создали на нем таблицу. поэтому для доступа будет 'sqlcontext.sql (« select * from memTBL »)' – mrsrinivas
Спасибо @mrsrinivas. На самом деле мне нужен hivecontext. Ваше направление верно. – Jhon