我是 Spark 和 Spark SQL 的新手。
如何createOrReplaceTempView
在 Spark 工作?
如果我们注册一个RDD
对象作为表 Spark 会将所有数据保留在内存中吗?
createOrReplaceTempView
创建(或替换,如果该视图名称已存在)一个延迟计算的“视图”,然后您可以像 Spark SQL 中的 hive 表一样使用它。确实如此not除非您缓存支撑视图的数据集,否则它会持久保存到内存中。
scala> val s = Seq(1,2,3).toDF("num")
s: org.apache.spark.sql.DataFrame = [num: int]
scala> s.createOrReplaceTempView("nums")
scala> spark.table("nums")
res22: org.apache.spark.sql.DataFrame = [num: int]
scala> spark.table("nums").cache
res23: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [num: int]
scala> spark.table("nums").count
res24: Long = 3
仅在以下时间后数据才会被完全缓存.count
称呼。这是它已被缓存的证据:
相关SO:Spark createOrReplaceTempView 与 createGlobalTempView https://stackoverflow.com/questions/42774187/spark-createorreplacetempview-vs-createglobaltempview
相关引用(与持久表相比):“与 createOrReplaceTempView 命令不同,saveAsTable 将具体化 DataFrame 的内容并创建指向 Hive 元存储中数据的指针。”从https://spark.apache.org/docs/latest/sql-programming-guide.html# saving-to-persistent-tables https://spark.apache.org/docs/latest/sql-programming-guide.html#saving-to-persistent-tables
Note : createOrReplaceTempView
以前是registerTempTable
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)