Es gibt eine neue createGlobalTempView
, mit dem sich sitzungsübergreifende Ansichten registrieren lassen:
Ihre Lebensdauer ist die Lebensdauer der Spark-Anwendung, d. h. sie wird automatisch gelöscht, wenn die Anwendung beendet wird. Es ist an eine systemkonservierte Datenbank
_global_temp
gebunden, und wir müssen den qualifizierten Namen verwenden, um eine globale temporäre Ansicht, z. %Code%.
SELECT * FROM _global_temp.view1
wurde zugunsten von registerTempTable
und createTempView
mit der vorherigen, die wirft und Ausnahme, wenn die Ansicht bereits existiert.
Obwohl es keinen praktischen Unterschied zwischen diesen beiden gibt, gibt es einen Unterschied in der Ausführungsstrategie:
createOrReplaceTempView
ruft SQLContext.registerDataFrameAsTable
Methode im JVM SQL-Kontext registerDataFrameAsTable
ruft DataFrame.registerTempTable
im JVM-Datenframe auf, der registerTempTable
method im JVM-SQL-Kontext registerDataFrameAsTable
ruft DataFrame.registerTempTable
method im SQL-Kontext registerDataFrameAsTable
ist eine private Methode, auf die außerhalb von SQLContext.registerDataFrameAsTable
package nicht zugegriffen werden kann. Um die Dinge einfach zu halten, ist es wahrscheinlich eine gute Idee, auch bei org.apache.spark.sql
zu bleiben.
Tags und Links apache-spark apache-spark-sql