Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 2.0中访问指定数据库限定符的配置单元表_Apache Spark_Hive_Apache Spark Sql - Fatal编程技术网

Apache spark 在spark 2.0中访问指定数据库限定符的配置单元表

Apache spark 在spark 2.0中访问指定数据库限定符的配置单元表,apache-spark,hive,apache-spark-sql,Apache Spark,Hive,Apache Spark Sql,我正在尝试使用spark sql访问指定数据库限定符的配置单元表。我正在使用sparksession,因为它是spark 2.0或更高版本。例如,我正在尝试向现有表添加分区。问题是 sql(“ALTER TABLE$databasename.$tablename ADD PARTITION(…)LOCATION…”) 它不会抛出任何错误,但甚至不会创建任何分区。是不是我不能在spark sql中指定databaseName use Database 您可以使用的最新Spark版本支持该命令 s

我正在尝试使用spark sql访问指定数据库限定符的配置单元表。我正在使用sparksession,因为它是spark 2.0或更高版本。例如,我正在尝试向现有表添加分区。问题是

sql(“ALTER TABLE$databasename.$tablename ADD PARTITION(…)LOCATION…”)

它不会抛出任何错误,但甚至不会创建任何分区。是不是我不能在spark sql中指定databaseName

use Database
您可以使用的最新Spark版本支持该命令

sparksession.sql("use $databasename");
sparksession.sql("ALTER TABLE $tablename ADD PARTITION (...) LOCATION ...");

尝试使用上面的代码,这可以解决您的问题。

您可以分享代码和spark日志吗?这是一个非常大的代码。在这里面,我正在实现一个方法。无法共享整个代码,基本上代码正在创建一个查询,看起来像:ALTER TABLE databaseName.tableName ADD PARTITION(partitioncolumns='value')LOCATION“some s3 LOCATION”当它执行此sql时,你能看到spark日志吗?当我不指定数据库名称时,即当它使用默认数据库时,它运行得非常好。是的,sparks日志说,重试两次或三次,然后停止,不会抛出错误。我正在运行EMRUse数据库语句上的spark代码。但是,如果可能的话,我想在查询本身中指定databaseName。因为有不同的方法,如果可以在一个查询中完成,我不想使用两个不同的SQL。