我有一个相当大的RDD,有来自Kafka火花流的400个字段,我需要通过在转换流并最终编写Elasticsearch时从初始RDD流中选择一些字段来创建另一个RDD或Map。 / p>
我通过字段名称了解我的字段,但不知道字段索引。
如何按字段名称将特定字段投影到新地图?
答案 0 :(得分:1)
假设每个字段由分隔符“#”分隔。您可以使用第一行或头文件确定每个字段的索引,并存储在某些数据结构中。随后,您可以使用此结构来确定字段并创建新地图。
您可以使用Apache Avro格式预处理数据。这将允许您根据其字段访问数据,并且不需要知道String中的索引。以下链接为将Avro与Kafka和Spark集成提供了一个很好的起点。
http://aseigneurin.github.io/2016/03/04/kafka-spark-avro-producing-and-consuming-avro-messages.html