- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用JavaRDD类提取username
和count
(每个用户执行每个事件多少次)。如何制作JavaRDD对象。
这是我的数据快照:
{
"_id" : ObjectId("57b3e6d1cab823158a06cafe"),
"app" : {
"clientIp" : "111.0.0.1",
"event" : {
"event_name" : "MAX_SEARCH",
"appId" : 1,
"userName" : "Alex"
}
}
}
Alex MAX_SEARCH 5
最佳答案
假设您在文本文件中有多个记录,如下所示,并且您想要获取用户名,事件名称和事件计数。
{
"_id": ObjectId("57b3e6d1cab823158a06cafe"),
"app": {
"clientIp": "111.0.0.1",
"event": {
"event_name": "MAX_SEARCH",
"appId": 1,
"userName": "Alex"
}
}
},
{
"_id": ObjectId("57b3e6d1cab823158a06cafe"),
"app": {
"clientIp": "111.0.0.1",
"event": {
"event_name": "MAX_SEARCH",
"appId": 1,
"userName": "Alex"
}
}
}
{
"_id": ObjectId("57b3e6d1cab823158a01cafe"),
"app": {`enter code here`
"clientIp": "111.0.0.1",
"event": {
"event_name": "MAX_SEARCH",
"appId": 1,
"userName": "Hokam"
}
}
},
{
"_id": ObjectId("57b3e6d1cab823158a02cafe"),
"app": {
"clientIp": "111.0.0.1",
"event": {
"event_name": "MIN_SEARCH",
"appId": 1,
"userName": "Hokam"
}
}
}
import net.minidev.json.JSONObject;
import net.minidev.json.JSONValue;
SparkConf conf = new SparkConf().setAppName("UserEventLogger").setMaster("local[2]");
JavaSparkContext sc = new JavaSparkContext(conf);
String fileData = FileUtils.readFileToString(new File("/data/pocs/text-file.json"));
List<JSONObject> jsonObject = (List<JSONObject>) JSONValue.parse("[" + fileData + "]");
JavaRDD<JSONObject> jsonRdd = sc.parallelize(jsonObject);
jsonRdd.mapToPair(new PairFunction<JSONObject, String, Integer>() {
@Override
public Tuple2<String, Integer> call(JSONObject appObj) throws Exception {
JSONObject app = (JSONObject) appObj.get("app");
JSONObject event = ((JSONObject) app.get("event"));
String username = event.getAsString("userName");
String eventName = event.getAsString("event_name");
return new Tuple2<String, Integer>(username + " " + eventName, 1);
}
}).reduceByKey(new Function2<Integer, Integer, Integer>() {
@Override
public Integer call(Integer v1, Integer v2) throws Exception {
return v1 + v2;
}
}).foreach(new VoidFunction<Tuple2<String, Integer>>() {
@Override
public void call(Tuple2<String, Integer> t) throws Exception {
System.out.println(t._1 + " " + t._2);
}
});
sc.stop();
Hokam MAX_SEARCH 1
Alex MAX_SEARCH 2
Hokam MIN_SEARCH 1
关于java - 如何使用JavaRDD类提取分组依据的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39292273/
我正在使用以下命令将 txt 文件作为 JavaRDD 读取: JavaRDD vertexRDD = ctx.textFile(pathVertex); 现在,我想将其转换为 JavaRDD,因为在
我正在尝试将类型化rdd转换为行rdd,然后从中创建数据框。当我执行代码时,它抛出异常。 代码: JavaRDD rdd = sc.parallelize(counters); JavaRDD row
我正在尝试将 csv 文件作为 JavaRDD 字符串加载,然后想要获取 JavaRDD Vector 中的数据 import org.apache.spark.SparkConf; import o
我正在尝试将推文从 twitter 保存到 MongoDb 数据库。 我有RDD我正在尝试借助 ObjectMapper 将其转换为 JSON 格式。但是此转换存在一些问题( public class
我正在尝试对维基百科 XML 转储执行 LDA。在获得原始文本的 RDD 之后,我创建了一个数据框并通过 Tokenizer、StopWords 和 CountVectorizer 管道对其进行转换。
我有一个类对象列表的 JavaRDD。我想将它展平为类对象的 JaveRDD,这样JavaRDD 转到 JavaRDD 在这篇文章中 Convert RDD List to RDD of indivi
有没有直接转换JavaRDD>的方法至JavaRDD使用 Apache-Spark 的 Java API? JavaPairRDD> baseRDD = sc.newAPIHadoopFile(arg
JavaRDD> documents = StopWordsRemover.Execute(lemmatizedTwits).toJavaRDD().map(new Function>() {
我已经开始将我的 Pyspark 应用程序编写为 Java 实现。我正在使用 Java 8。我刚开始在 java 中执行一些基本的 spark progrma。我使用了以下 wordcount示例。
我有一个JavaRDD>当我使用时,我的文件在每个字符串列表的开头和结尾处都用 [] 写入 javacontext.parallelize(rdd).coalesce(1, true).saveAsT
我正在尝试对行类型数据执行 JavaRDD 操作。但我无法解析或迭代 JavaRDD 数据 架构: root |-- categories: array (nullable = true) |
我正在尝试将预测映射到 LinearRegression 模型,以便将它们传递到 BinaryClassificationMetrics boject: // Make predictions on
我有一个宽度为 100 字节的文本文件。以下是结构。我需要读取 JavaRDD 中的数据。 RecType - String 1 Byte Date - String 8 byte Produc
我有一个 CSV 数据集,其中包含以下列(Accident_Id、日期、区域)和数百行。我想要实现的是将“区域”列分组为可能的唯一组,并找到每个组的计数。 我知道如何使用 SQLContext 来做到
我试图合并多个 JavaRDD,但我只合并了 2 个,有人可以帮忙吗?我已经为此苦苦挣扎了一段时间,但总的来说,我希望能够获得多个集合并使用 sqlContext 创建一个组并打印出所有结果。 这里是
我正在使用 Spark SQL 在 Spark 应用程序中从 Cassandra 检索数据。数据以 DataSet 形式检索。但是,我需要使用 javaRDD() 函数将此数据集转换为 JavaRDD
我需要对一个巨大的 RDD 进行复杂的计算,但为了简单起见,我将问题简化为更简单的问题: 我有一个像这样获得的JavaRDD: JavaRDD students = sc.parallelize(
我有一个 IP 列表作为字符串列表存储在 JavaRDD 中 logLine:[[54.186.7.47]、[178.154.189.203]、[10.55.1.29]、[115.93.74.252]
请帮助我了解将 spark javaRDD 的输出保存到数据库中的最佳方法是什么? 我应该编写spark java代码将RDD保存到数据库中吗?这种方法有什么缺点? 或者我应该使用sqoop将输出文件
我正在收集一个 RDD,需要使用以下代码在 Spark Java API 中对其进行排序: List alarmedTimeStamps=sensorDataDoubleDF.toJavaRDD().
我是一名优秀的程序员,十分优秀!