gpt4 book ai didi

apache-spark - 全局临时 View 的目的是什么?

转载 作者:行者123 更新时间:2023-12-04 04:18:56 25 4
gpt4 key购买 nike

试图了解如何使用 Spark 全局临时 View 。

在一个 spark-shell session 中,我创建了一个 View

spark = SparkSession.builder.appName('spark_sql').getOrCreate()

df = (
spark.read.option("header", "true")
.option("delimiter", ",")
.option("inferSchema", "true")
.csv("/user/root/data/cars.csv"))

df.createGlobalTempView("my_cars")

# works without any problem
spark.sql("SELECT * FROM global_temp.my_cars").show()

在另一个上,我尝试访问它,但没有成功(未找到表或 View )。

 #second Spark Shell 
spark = SparkSession.builder.appName('spark_sql').getOrCreate()
spark.sql("SELECT * FROM global_temp.my_cars").show()

这是我收到的错误:

 pyspark.sql.utils.AnalysisException: u"Table or view not found: `global_temp`.`my_cars`; line 1 pos 14;\n'Project [*]\n+- 'UnresolvedRelation `global_temp`.`my_cars`\n"

我读过每个 spark-shell 都有自己的上下文,这就是为什么一个 spark-shell 看不到另一个的原因。所以我不明白,GTV有什么用,它在哪里有用?

谢谢

最佳答案

spark documentation你可以看到:

If you want to have a temporary view that is shared among all sessions and keep alive until the Spark application terminates, you can create a global temporary view.

只要应用程序处于事件状态,全局表就保持可访问性。打开一个新的 shell 并为其提供相同的应用程序只会创建一个新的应用程序。

您可以尝试在同一个 shell 中测试它:

spark.newSession.sql("SELECT * FROM global_temp.my_cars").show()

please see my answer on a similar question有关更详细的示例以及 Spark 应用程序和 Spark session 的简短定义

关于apache-spark - 全局临时 View 的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49108386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com