我有这个问题。 IDE Scala给我一个错误,因为它说read
中的sqlContext.read.format("jdbc").options(options)
方法不属于SQLContext
个对象。需要我添加一个依赖?
然后我不知道我需要为DataFrame
和Row
对象添加哪个库。
这是代码。
import java.util.HashMap;
import java.util.Map;
import org.apache.spark.SparkConf;
import org.apache.spark.SparkContext;
import org.apache.spark.sql.SQLContext;
public class caricaDati {
public static void main(String[] args) {
Map<String, String> options = new HashMap<String, String>();
options.put("url",
"jdbc:mysql://localhost:3306/banche?user=..&password=...");
options.put("dbtable", "t_analisi_banche_021");
SparkContext sc = new SparkContext(new SparkConf().setAppName("DBConnection").setMaster("local[*]"));
SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);
DataFrame jdbcDF = sqlContext.read.format("jdbc").options(options);
System.out.println("Data------------------->" + jdbcDF.toJSON().first());
Row[] rows = jdbcDF.collect();
}
}
答案 0 :(得分:0)
您是否尝试使用org.apache.spark.sql.hive.HiveContext
?这个类很好地扩展了SQLContext
的功能。
答案 1 :(得分:0)
错误在于我使用了import org.apache.spark.SparkContext;
而不是import org.apache.spark.api.java.JavaSparkContext;
。此外,指令DataFrame jdbcDF = sqlContext.read.format("jdbc").options(options);
是错误的。它应该是DataFrame jdbcDF = sqlContext.read.format("jdbc").options(options).load();