我现在正在学习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_SCHEMATABLES表。您可以使用与上面相同的代码,但可以更改dbtable属性。

10-02 07:13