我现在正在学习Spark,我知道如何使用特定的表。
但我想从数据库中加载所有表。问题是怎么做。
下面是我从特定表加载的代码:
package gt.example.spark;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.DataFrame;
import org.apache.spark.sql.SQLContext;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class App {
public static final String DRIVER = "com.mysql.jdbc.Driver";
public static final String URL = "jdbc:mysql://localhost:3306/example";
public static final String USERNAME = "root";
public static final String PASSWORD = "pass";
private static final JavaSparkContext sc =
new JavaSparkContext(new SparkConf().setAppName("Spark Example").setMaster("local[*]"));
private static final SQLContext sqlContext = new SQLContext(sc);
public static void main(String[] args) {
Map<String, String> options = new HashMap<String, String>();
options.put("driver", DRIVER);
options.put("url", URL + "?user=" + USERNAME + "&password=" + PASSWORD);
options.put("dbtable", "user");
DataFrame jdbcDF = sqlContext.read().format("jdbc").options(options).load();
jdbcDF.show();
}
}
最佳答案
是否要加载所有表名?如果是,则查询INFORMATION_SCHEMA
TABLES
表。您可以使用与上面相同的代码,但可以更改dbtable
属性。