从文字值创建 DataFrame 和 JavaRDD
Posted
技术标签:
【中文标题】从文字值创建 DataFrame 和 JavaRDD【英文标题】:Create a DataFrame and JavaRDD from literal values 【发布时间】:2015-11-16 09:53:04 【问题描述】:我正在用 Java 编写 Spark 应用程序,我想知道如何从文字值创建 DataFrame 和/或 JavaRDD。
例如我有 3 个整数,比如 (784512, 35, 40)
对应于字段/列 (id, m_count, f_count)
。
【问题讨论】:
【参考方案1】:您希望 SparkContext.parallelize(...)
创建一个 JavaRDD 并希望 SQLContext.createDataFrame(...)
创建一个数据帧。
JavaRDD rdd = sc.parallelize(Arrays.asList(1, 2, 3, 4));
如果您是在创建具有三个值的对象的并行列表之后,那么您想要:
@Test
public void test()
JavaSparkContext sc = ...
SQLContext sqlContext = new SQLContext(sc);
JavaRDD<Counter> counters = sc.parallelize(Arrays.asList(new Counter(784512, 35, 40)));
DataFrame countersDF = sqlContext.createDataFrame(counters, Counter.class);
System.out.println(counters.collect());
System.out.println(countersDF.collectAsList());
public static class Counter implements Serializable
private final int id;
private final int m_count;
private final int f_count;
Counter(int id, int m_count, int f_count)
this.id = id;
this.m_count = m_count;
this.f_count = f_count;
public String toString()
return id + " " + m_count + " " + f_count;
// getters
【讨论】:
以上是关于从文字值创建 DataFrame 和 JavaRDD的主要内容,如果未能解决你的问题,请参考以下文章
从两个熊猫系列(csv的列作为DataFrame)创建元素字典