使用 Spark 进行字符串转换
String transformation using Spark
我正在学习 Spark,并尝试编写非常简单的应用程序。
作为输入,我有日志字符串,看起来像
INFO - {timestamp} - {path} - {json message}
INFO - 124534234534534 - test.class - {"message": "something happened"]
我想将它传递给 ElasticSearch。所以我需要获取 {timestamp} 并将其放入 {json message} 的新字段,所以它应该看起来像
{"timestamp": "1234343132", "message": "something happened"}
有人可以使用 Java 帮助我进行此转换吗?
创建一个Function
<String, String>
,其中包含一行日志和returns JSON 字符串。
Function<String, String> f = new Function<String, String>() {
public String call(String s) { return ...; }
}
使用SparkContext.textFile
读取数据
JavaSparkContext sc = ...;
JavaRDD<String> rdd = sc.textFile(...)
map
使用第 1 点中定义的函数创建了 RDD。
rdd.map(f);
我正在学习 Spark,并尝试编写非常简单的应用程序。 作为输入,我有日志字符串,看起来像
INFO - {timestamp} - {path} - {json message}
INFO - 124534234534534 - test.class - {"message": "something happened"]
我想将它传递给 ElasticSearch。所以我需要获取 {timestamp} 并将其放入 {json message} 的新字段,所以它应该看起来像
{"timestamp": "1234343132", "message": "something happened"}
有人可以使用 Java 帮助我进行此转换吗?
创建一个
Function
<String, String>
,其中包含一行日志和returns JSON 字符串。Function<String, String> f = new Function<String, String>() { public String call(String s) { return ...; } }
使用
读取数据SparkContext.textFile
JavaSparkContext sc = ...; JavaRDD<String> rdd = sc.textFile(...)
map
使用第 1 点中定义的函数创建了 RDD。rdd.map(f);