apache-spark-dataset相关内容
我有一个 RDD[LabeledPoint] 打算在机器学习管道中使用.我们如何将 RDD 转换为 DataSet?请注意较新的 spark.ml api 需要 Dataset 格式的输入. 解决方案 这是一个遍历额外步骤的答案 - DataFrame.我们使用 SQLContext 创建一个 DataFrame,然后使用所需的对象类型创建一个 DataSet - 在本例中为 Labele
..
对于下面的数据集,为了获得 Col1 的总汇总值,我做了 import org.apache.spark.sql.functions._val totaldf = df.groupBy("Col1").agg(lit("Total").as("Col2"), sum("price").as("price"), sum("displayPrice").as(“显示价格")) 然后与 合并 d
..
我使用的是 spark-sql 2.4.x 版本,Cassandra-3.x 版本使用的是 datastax-spark-cassandra-connector.与 kafka 一起. 我有一个来自 kafka 主题的财务数据的场景.data(基础数据集)包含 companyId, year , prev_year 字段信息. 如果列 year === prev_year 那么我需要加
..
我有一个低于 Cols 的数据集. df.show();+--------+---------+---------+---------+---------+|列 1 |Col2 |花费1 |支出2 |花费3 |+--------+---------+---------+---------+---------+|值 1 |Cvalue1 |123 |2254 |22 ||值 1 |Cvalue2
..
我有一个低于 Cols 的数据集. df.show();+--------+---------+---------+---------+---------+|列 1 |Col2 |花费1 |支出2 |花费3 |+--------+---------+---------+---------+---------+|值 1 |Cvalue1 |123 |2254 |22 ||值1 |Cvalue2 |
..
我正在尝试解决一个问题,这样我就有了这样的数据集: (1, 3)(1, 4)(1, 7)(1, 2) 由于 (1 -> 2) 和 (2 -> 7),我想替换集合 (2, 7) 为 (1, 7)类似地,(3 -> 7) 和 (7 -> 4) 也将 (7,4) 替换为 (3, 4) 因此,我的数据集变成了 (1, 3)(1, 4)(1, 7)(1, 2)(1, 7)(6, 6)(3, 7
..
问题是如何在Dataset中存储自定义对象的后续问题? Spark 版本:3.0.1 可以实现非嵌套自定义类型: import spark.implicits._导入 org.apache.spark.sql.{Encoder, Encoders}类 AnObj(val a: Int, val b: String)隐式 val myEncoder: Encoder[AnObj] =
..
我在一个 dataframe 中有数据,它是从 azure eventhub 获得的.然后我将这些数据转换为 json 对象,并将所需的数据存储到一个数据集中,如下所示. 用于从 eventhub 获取数据并将其存储到数据帧中的代码. val connectionString = ConnectionStringBuilder().setEventHubName().buildval cu
..
我想弄清楚如何根据另一行更新某些行. 例如,我有一些类似的数据 Id |用户名 |评分 |城市--------------------------------1、飞利浦、2.0、蒙特利尔、...2, 约翰, 4.0, 蒙特利尔, ...3、查尔斯、2.0、德克萨斯、... 我想将同一城市的用户更新为相同的 groupId(1 或 2) Id |用户名 |评分 |城市----------
..
我有一个简单的代码: test("0153") {val c = Seq(1,8,4,2,7)val max = (x:Int, y:Int)=>如果 (x > y) x 否则 yc.减少(最大)} 它工作正常.但是,当我按照相同的方式使用 Dataset.reduce 时, test("SparkSQLTest") {def max(x: Int, y: Int) = if (x > y)
..
我有一个 Datasetdf,包含 string 类型的两列(“key"和“value").df.printSchema();给我以下输出: root|-- 键:字符串(可为空 = 真)|-- 值:字符串(可为空 = 真) value 列的内容实际上是一个 csv 格式的行(来自 kafka 主题),该行的最后一个条目代表类标签,所有之前的条目代表特征(第一行不包含在数据集中): featu
..
我正在努力理解 RDD、DataSet 和 DataFrame 之间的转换是如何工作的.我对 Spark 很陌生,每次我需要从数据模型传递到另一个数据模型(尤其是从 RDD 到数据集和数据帧)时,我都会卡住.谁能给我解释一下正确的做法? 举个例子,现在我有一个 RDD[org.apache.spark.ml.linalg.Vector] 并且我需要将它传递给我的机器学习算法,例如一个 KMe
..
Spark Scala API 有一个 Dataset#transform 方法,可以轻松链接自定义 DataFrame 转换,如下所示: valweirdDf = df.transform(myFirstCustomTransformation).transform(anotherCustomTransformation) 我没有看到 transform 方法="nofollow noref
..
我对 Spark 2.0 DataSet 非常满意,因为它的编译时类型安全.但是这里有几个我无法解决的问题,我也没有为此找到好的文档. 问题 #1 - 聚合列的除法操作-考虑下面的代码 -我有一个 DataSet[MyCaseClass],我想在 c1、c2、c3 和 sum(c4)/8 上使用 groupByKey.如果我只计算总和,下面的代码运行良好,但它给出了除法 (8) 的编译时间错
..
我正在尝试根据制造商列的内容将数据集拆分为不同的数据集.很慢 请提出改进代码的方法,使其执行得更快并减少Java代码的使用. Listlsts= countsByAge.collectAsList();for(Row lst:lsts){String man=lst.toString();man = man.replaceAll("[\\p{Ps}\\p{Pe}]", "");数据集
..
为了利用Dataset的优化,我是否必须显式使用Dataframe的方法(例如df.select(col("name"),col("age") 等) 或调用任何数据集的方法 - 甚至 RDD 类方法(例如 filter、map 等)也允许优化? 解决方案 Dataframe 优化通常有 3 种风格: Tungsten 内存管理 催化剂查询优化 整个阶段的代码生成 Tungs
..
我将 2 个数据集按两列连接起来,结果是包含 550 亿行的数据集.之后,我必须通过与 join 中使用的列不同的列对这个 DS 进行一些聚合.问题是 Spark 在加入后进行交换分区(550 亿行花费太多时间),尽管数据已经正确分布,因为聚合列是唯一的.我知道聚合密钥已正确分发,有没有办法将其告知 Spark 应用程序? 解决方案 1) 转到 Spark UI 并检查“Locality
..
我在一天的时间窗口 (86400) 内计算了 (user,app) 的尝试次数.我想提取具有最新时间戳和计数的行,并删除不必要的先前计数.确保您的答案考虑了时间窗口.一个拥有 1 台设备的用户可以一天或一周进行多次尝试,我希望能够在每个特定窗口中使用最终计数来检索那些特定时刻. 我的初始数据集是这样的: val df = sc.parallelize(Seq(("user1", "ipho
..
我有一个数据集,其中一列 lastModified 类型为字符串,格式为“yyyy-MM-ddThh:mm:ss.SSS+0000"(示例数据:2018-08-17T19:58:46.000+0000). 我必须通过将 lastModified 的值转换为格式“yyyy-MM-dd hh:mm"来添加时间戳类型的新列 lastModif_mapped:ss.SSS". 我尝试了下面的代
..
我有以下案例类: case class Person(name: String, lastname: Option[String] = None, age: BigInt) {} 以及以下 json: { "name": "bemjamin", "age" : 1 } 当我尝试将数据框转换为数据集时: spark.read.json("example.json").as[人].show(
..