我有一個Spark連接到Hive並嘗試打印數據庫列表和表列表的列表,並在最後創建一個新的配置單元表('mytable ')在數據庫'testdata'中。Spark程序不打印Hive數據庫或表列表
而不是打印數據庫列表,df.show正在打印默認的數據庫名稱,因爲我期望打印蜂巢上的所有數據庫。
此外,當正在打印新表時,程序正在打印消息:數據庫不可用,其中數據庫已存在於配置單元中。
以下是正在打印的內容。
有人可以幫助修復我的程序嗎?
+------------+
|databaseName|
+------------+
| default|
+------------+
+---------+-----------+
|tableName|isTemporary|
+---------+-----------+
+---------+-----------+
import java.io.Serializable;
//$example off:programmatic_schema$
import org.apache.spark.sql.AnalysisException;
//$example on:create_df$
//$example on:run_sql$
//$example on:programmatic_schema$
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
//$example on:init_session$
import org.apache.spark.sql.SparkSession;
public class SparkLoad {
public static void main(String[] args) throws AnalysisException {
SparkSession spark = SparkSession
.builder()
.master("local") ///local
.appName("Java Spark SQL basic example")
.getOrCreate();
abcd(spark);
spark.stop();
}
private static void abcd(SparkSession spark) {
Dataset<Row> df = spark.sql("SHOW DATABASES");
df.show(); //this should print the database list.
Dataset<Row> dff = spark.sql("SHOW TABLES");
dff.show(); //this should print all table list.
spark.sql("create table testdata.mytable (text1 varchar(64), text2 varchar(64), text3 varchar(64), "
+ "link string, text4 varchar(64),text5 varchar(64),text6 varchar(64),text7 varchar(64),text8 varchar(250),"
+ "text9 varchar(250),text10 varchar(250),text11 varchar(250),text12 varchar(64),text13 varchar(64),text14 varchar(64),"
+ "text15 varchar(64),text16 varchar(64),text17 varchar(64),text18 varchar(250),text19 varchar(64),text20 varchar(64),"
+ "text21 varchar(64),text22 varchar(64),text23 varchar(64),text24 varchar(64),text25 varchar(64),text26 varchar(64),"
+ "text27 varchar(64),text28 varchar(64),text29 varchar(64),text30 varchar(64),text31 varchar(64),text32 varchar(64))"
+ " row format delimited fields terminated by '~' STORED AS TEXTFILE");
}
}
我在火花安裝的conf文件夾中有hive-site.xml文件。問題仍然存在。 – AKC