Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark spark saveAsTable真的创建了一个表吗?_Apache Spark_Hive - Fatal编程技术网

Apache spark spark saveAsTable真的创建了一个表吗?

Apache spark spark saveAsTable真的创建了一个表吗?,apache-spark,hive,Apache Spark,Hive,这可能是一个愚蠢的问题,因为我对spark缺乏一些基本知识,我尝试以下方法: SparkSession spark = SparkSession.builder().appName("spark ...").master("local").enableHiveSupport().getOrCreate(); Dataset<Row> df = spark.range(10).toDF(); df.write().saveAsTable("foo"); 我这里有两个问题 1) 是

这可能是一个愚蠢的问题,因为我对spark缺乏一些基本知识,我尝试以下方法:

SparkSession spark = SparkSession.builder().appName("spark ...").master("local").enableHiveSupport().getOrCreate();
Dataset<Row> df = spark.range(10).toDF();
df.write().saveAsTable("foo");  
我这里有两个问题

1) 是否可以创建“原始”spark表,而不是配置单元表?我知道Hive像mysql一样存储数据库中的元数据,spark也有类似的机制吗

2) 在第二段代码中,spark在调用saveAsTable时实际创建了什么

非常感谢。

检查以下答案:

  • 如果您想创建
    raw
    表格,只有在spark
    createOrReplaceTempView
    中才能帮助您。第二部分,检查下一个答案
  • 默认情况下,如果在数据帧上调用
    saveAsTable
    ,则如果使用
    enablehavesupport
    ,它会将表持久化到配置单元元存储中。如果我们不启用HIVESupport,表将由Spark管理,数据将位于
    Spark仓库
    位置下。重新启动spark会话后,您将松开这些表

  • 您好,RegisterEmptable已弃用,请改用createOrReplaceTempView(viewName)。但是createOrReplaceTempView没有帮助,我的意思是,像saveAsTable一样,我无法在新会话中从它获取数据。感谢您的提醒,如果您想从新会话获取表,我们必须使用配置单元支持
    SparkSession spark = SparkSession.builder().appName("spark ...").master("local").getOrCreate();
    Dataset<Row> df = spark.range(10).toDF();
    df.write().saveAsTable("bar"); 
    
    Caused by: org.apache.spark.sql.catalyst.analysis.NoSuchTableException: Table or view 'bar' not found in database 'default';