DataFrame相对于一张表
第一步创建一个普通的RDD,但是必须将其转换为RDD<Row>的这种格式
JavaRDD<Row> rows = lines.map(new Function<String, Row>() { public Row call(String s) throws Exception { return RowFactory.create(s.split(",")[0],s.split(",")[1]); } }); //第二步动态构造元数据 List<StructField> fields = new ArrayList<StructField>(); fields.add(DataTypes.createStructField("id",DataTypes.StringType,true)); fields.add(DataTypes.createStructField("name",DataTypes.StringType,true)); StructType structType = DataTypes.createStructType(fields); DataFrame df = sqlContext.createDataFrame(rows,structType);
将dataFrame转换为rdd
df.javaRDD()