2016-03-01 127 views
2

我现在正在学习Spark,并且我知道如何使用特定的表格。通过Spark获取MySQL中的所有表格

但我想加载数据库中的所有表。问题是如何去做。

这里是我的代码与特定的表加载:

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(); 
    } 
} 

回答

1

你想加载所有的表名?如果是这样,那么查询INFORMATION_SCHEMA。表1236。您可以使用与上述相同的代码,但更改dbtable属性。