从Spark RDD中选择字段

时间:2016-03-24 22:03:26

标签: scala apache-spark

我有一个相当大的RDD,有来自Kafka火花流的400个字段,我需要通过在转换流并最终编写Elasticsearch时从初始RDD流中选择一些字段来创建另一个RDD或Map。 / p>

我通过字段名称了解我的字段,但不知道字段索引。

如何按字段名称将特定字段投影到新地图?

1 个答案:

答案 0 :(得分:1)

  1. 假设每个字段由分隔符“#”分隔。您可以使用第一行或头文件确定每个字段的索引,并存储在某些数据结构中。随后,您可以使用此结构来确定字段并创建新地图。

  2. 您可以使用Apache Avro格式预处理数据。这将允许您根据其字段访问数据,并且不需要知道String中的索引。以下链接为将Avro与Kafka和Spark集成提供了一个很好的起点。

  3. http://aseigneurin.github.io/2016/03/04/kafka-spark-avro-producing-and-consuming-avro-messages.html