Apache spark spark sql表或视图未找到错误

Apache spark spark sql表或视图未找到错误,apache-spark,apache-spark-sql,spark-dataframe,Apache Spark,Apache Spark Sql,Spark Dataframe,我正在尝试使用SparkSQL和JDBC运行一个基本的java程序。我遇到了以下错误。不确定这里出了什么问题。我读过的大部分材料都没有谈到需要做些什么来解决这个问题 如果有人能给我指出一些关于Spark sql(Spark-2.1.1)的好资料,那也太好了。我计划使用spark实现ETL,连接MySQL和其他数据源 线程“main”org.apache.spark.sql.AnalysisException中的异常:未找到表或视图:myschema.mytable;第1行位置21 Str

我正在尝试使用SparkSQL和JDBC运行一个基本的java程序。我遇到了以下错误。不确定这里出了什么问题。我读过的大部分材料都没有谈到需要做些什么来解决这个问题

如果有人能给我指出一些关于Spark sql(Spark-2.1.1)的好资料,那也太好了。我计划使用spark实现ETL,连接MySQL和其他数据源

线程“main”org.apache.spark.sql.AnalysisException中的异常:未找到表或视图:
myschema.mytable
;第1行位置21

    String MYSQL_CONNECTION_URL = "jdbc:mysql://localhost:3306/myschema";
    String MYSQL_USERNAME = "root";
    String MYSQL_PWD = "root";

    Properties connectionProperties = new Properties();
    connectionProperties.put("user", MYSQL_USERNAME);
    connectionProperties.put("password", MYSQL_PWD);

    Dataset<Row> jdbcDF2 = spark.read()
              .jdbc(MYSQL_CONNECTION_URL, "myschema.mytable", connectionProperties);
    spark.sql("SELECT COUNT(*) FROM myschema.mytable").show();
String MYSQL\u CONNECTION\u URL=“jdbc:mysql://localhost:3306/myschema";
字符串MYSQL\u USERNAME=“root”;
字符串MYSQL_PWD=“root”;
Properties connectionProperties=新属性();
connectionProperties.put(“用户”,MYSQL\u用户名);
connectionProperties.put(“密码”,MYSQL_PWD);
数据集jdbcDF2=spark.read()
.jdbc(MYSQL\u CONNECTION\u URL,“myschema.mytable”,connectionProperties);
sql(“从myschema.mytable中选择COUNT(*”).show();

这是因为Spark在Spark SQL上下文中默认情况下没有从connection注册任何模式中的任何表。您必须自己注册:

jdbcDF2.createOrReplaceTempView("mytable");
spark.sql("select count(*) from mytable");
您的jdbcDF2在MySQL的
myschema.mytable
中有一个源代码,并将在某些操作中从此表加载数据

请记住,MySQL表与Spark表或视图不同。您告诉Spark从MySQL读取数据,但必须将此数据帧或数据集注册为当前Spark SQL上下文或Spark会话中的表或视图