- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类型为set的列,我使用spark Dataset API的collect_set()
,它返回一个包装数组的包装数组。我想要来自嵌套包装数组的所有值的单个数组。我怎样才能做到这一点?
例如。 Cassandra 表:
Col1
{1,2,3}
{1,5}
我正在使用 Spark 数据集 API。row.get(0)
返回包装数组的包装数组。
最佳答案
假设您有Dataset<Row> ds
其中有value
专栏。
+-----------------------+
|value |
+-----------------------+
|[WrappedArray(1, 2, 3)]|
+-----------------------+
它具有以下架构
root
|-- value: array (nullable = true)
| |-- element: array (containsNull = true)
| | |-- element: integer (containsNull = false)
使用 UDF
定义UDF1
像下面这样。
static UDF1<WrappedArray<WrappedArray<Integer>>, List<Integer>> getValue = new UDF1<WrappedArray<WrappedArray<Integer>>, List<Integer>>() {
public List<Integer> call(WrappedArray<WrappedArray<Integer>> data) throws Exception {
List<Integer> intList = new ArrayList<Integer>();
for(int i=0; i<data.size(); i++){
intList.addAll(JavaConversions.seqAsJavaList(data.apply(i)));
}
return intList;
}
};
注册并调用UDF1
像下面这样
import static org.apache.spark.sql.functions.col;
import static org.apache.spark.sql.functions.callUDF;
import scala.collection.JavaConversions;
//register UDF
spark.udf().register("getValue", getValue, DataTypes.createArrayType(DataTypes.IntegerType));
//Call UDF
Dataset<Row> ds1 = ds.select(col("*"), callUDF("getValue", col("value")).as("udf-value"));
ds1.show();
使用爆炸功能
import static org.apache.spark.sql.functions.col;
import static org.apache.spark.sql.functions.explode;
Dataset<Row> ds2 = ds.select(explode(col("value")).as("explode-value"));
ds2.show(false);
关于java - WrappedArray 的 WrappedArray 到 java 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45324530/
我有一个类型为set的列,我使用spark Dataset API的collect_set(),它返回一个包装数组的包装数组。我想要来自嵌套包装数组的所有值的单个数组。我怎样才能做到这一点? 例如。
我的 Dataset 中有一列包含 WrappedArray> .我将此专栏传递给 UDF提取其中一个值。 我将如何访问这个嵌套结构中的 double ? 我想做这样的事情: sparkSession
我在 JAVA 中的 SparkSQL 中解析一个 json 文件,我需要能够访问返回的坐标,这些坐标似乎是 WrappedArrays 的 WrappedArray。这是代码: df.registe
我正在使用 Spark 2.0。我的数据帧有一列,其中包含浮点型 WrappedArrays 的 WrappedArray。 行的示例如下: [[1.0 2.0 2.0][6.0 5.0 2.0][4
我的问题是我必须在一个列表中找到这些不是空的。当我使用过滤器函数不为空时,我也得到每一行。 我的程序代码如下所示: ... val csc = new CassandraSQLContext(s
我有一个 spark 数据框,这里是架构: |-- eid: long (nullable = true) |-- age: long (nullable = true) |-- sex: long
我正在尝试将包含 Array[String] 的列转换为 String,但我始终收到此错误 org.apache.spark.SparkException: Job aborted due to st
我有一段代码如下: List indexes = joinedCols .map(x-> ((Tuple2)x)._1) .collect();
我有一个数据框,如下所示 +---------------------------------------------------------------------+ |value
我对这两个系列有点困惑。 我知道 Scala 的 Array 调用 Java API。在这种情况下,Wrapped Array 的作用是什么(及其性能特征)? http://www.scala-lan
我是Spark和Scala的新手。我正在尝试将函数称为Spark UDF,但遇到了我似乎无法解决的错误。 我了解在Scala中,Array和Seq并不相同。 WrappedArray是Seq的子类型,
两个问题,一般性问题的答案将指导我制作一个 MVCE 的最小限度。 1) 我如何知道预先注册 WrappedArray(以及我可能使用的 Scala 中的所有其他类)?必须使用 Kryo 从库中注册类
scala> def joinWith(separator: String, values: String*): String = { | Array(values).mkStr
我是 Spark/Scala 的初学者。我想在从 Dataset 中选择的 Array 中提取一个值(Double)。简化的主要步骤如下所示。如何提取每个值[Double]最后一个 val wpA ?
我一直在尝试将 RDD 转换为数据帧。为此,需要定义类型而不是 Any。我正在使用 Spark MLLib PrefixSpan,这就是 freqSequence.sequence 的来源。我从一个数
我正在尝试转换 Dataframe 中的 json 文件,但我陷入了基于数组的字段中。我正在使用 Spark 1.6 和 Java。当我读取嵌套的 Json 并转换为 Dataframe 时,我可以读
我有以下架构: geometry: struct (nullable = true) -- coordinates: array (nullable = true) -- el
我有一个有趣的 json 数据,如下所示: [ { "internal_network" : [ { "address" : [ { "address_id" : 2,
我为一个奇怪的运行时错误抓狂: // File: build.sbt scalaVersion := "2.10.1" // File: src/main/scala/bug/Bug.scala pa
Spark 抛ClassCastExpection对 WrappedArray 执行任何操作时 例子: 我有一个像下面这样的 map 输出 输出: Map(1 -> WrappedArray(Pan4
我是一名优秀的程序员,十分优秀!