# 读取文件 csv|txt|其他文本文件 sc.textFile(文件名) sc.wholeTextFile(文件名) # 存文件 sc.savaAsText(文件名)
json文件读取
读取json的方法,集成FlatMapFunction接口
# ParseJson.java # 读取json文件 import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.spark.api.java.function.FlatMapFunction; import java.util.ArrayList; import java.util.Iterator; class ParseJson implements FlatMapFunction, Person> { public Iterator call(Iterator lines) throws Exception { ArrayList people = new ArrayList (); ObjectMapper mapper = new ObjectMapper(); while (lines.hasNext()){ String line = lines.next(); try { people.add(mapper.readValue(line,Person.class)); }catch (Exception e) { // 跳过失败的数据 } } return (Iterator ) people; } }
解释json 文件内容的类
# Person.java
# person 需要根据数据调整
public class Person {
}
spark测试项目类
# main 使用
public class read_json {
public static void main(String[] args) {
JavaSparkContext jsc = sparkContext.getJavaSparkContext("local", "get_json");
JavaRDD input = jsc.textFile("file.json");
JavaRDD result = input.mapPartitions(new ParseJson());
result.foreach(new VoidFunction() {
@Override
public void call(Person person) throws Exception {
System.out.println(person);
}
});
jsc.stop();
}
}
读取spark数据很简单,只需要找到对应的文件规则,根据规则转换数据,将数据转换成类或者转换成RDD等等可以处理结构而非未知的数据样式。
上述方法比较复杂,建议尝试使用pyspark


