- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个RDD[(Seq[String], Seq[String])]
,数据中包含一些空值。转换为数据帧的 RDD 如下所示
+----------+----------+
| col1| col2|
+----------+----------+
|[111, aaa]|[xx, null]|
+----------+----------+
示例代码如下:
val rdd = sc.parallelize(Seq((Seq("111","aaa"),Seq("xx",null))))
val df = rdd.toDF("col1","col2")
val keys = Array("col1","col2")
val values = df.flatMap {
case Row(t1: Seq[String], t2: Seq[String]) => Some((t1 zip t2).toMap)
case Row(_, null) => None
}
val transposed = values.map(someFunc(keys))
val schema = StructType(keys.map(name => StructField(name, DataTypes.StringType, nullable = true)))
val transposedDf = sc.createDataFrame(transposed, schema)
transposed.show()
它运行良好,直到我创建一个转置DF,但是一旦我点击显示,它就会抛出以下错误:
scala.MatchError: null
at org.apache.spark.sql.catalyst.CatalystTypeConverters$StringConverter$.toCatalystImpl(CatalystTypeConverters.scala:295)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$StringConverter$.toCatalystImpl(CatalystTypeConverters.scala:294)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$CatalystTypeConverter.toCatalyst(CatalystTypeConverters.scala:97)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$StructConverter.toCatalystImpl(CatalystTypeConverters.scala:260)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$StructConverter.toCatalystImpl(CatalystTypeConverters.scala:250)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$CatalystTypeConverter.toCatalyst(CatalystTypeConverters.scala:102)
at org.apache.spark.sql.catalyst.CatalystTypeConverters$$anonfun$createToCatalystConverter$2.apply(CatalystTypeConverters.scala:401)
at org.apache.spark.sql.SQLContext$$anonfun$6.apply(SQLContext.scala:492)
at org.apache.spark.sql.SQLContext$$anonfun$6.apply(SQLContext.scala:492)
如果 rdd 中没有空值,则代码可以正常工作。我不明白为什么当我有任何空值时它会失败,因为我将 StringType 的架构指定为 nullable 为 true。难道我做错了什么?我正在使用 Spark 1.6.1 和 scala 2.10
最佳答案
模式匹配是线性执行的,就像它在源中出现的那样,因此,这一行:
case Row(t1: Seq[String], t2: Seq[String]) => Some((t1 zip t2).toMap)
对 t1 和 t2 的值没有任何限制,与 null 值匹配无关。
实际上,在前面进行空检查,它应该可以工作。
关于scala - Some(null) 到 Stringtype nullable scala.matcherror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43242025/
@Override public Option getCatalystType(int sqlType, String typeName, int size, MetadataBuilder md)
我正在尝试运行一些测试。即 assertDataFrameEquals(etalon, agg) 在 2 个数据帧上。但是得到如下错误 ScalaTestFailureLocation Expecte
我拿了一些在django 1.8.4版本做的样例代码,像python 2.7转3 python都飞走了,出现这样的错误,如何解决? \lib\site-packages\config.py", lin
我有一个 PySpark 数据框,其中的 StringType() 列主要包含 15 个字符。但是,有些行有 11 个字符。示例: df = +--------------+--------+ |
当转换为 StringType 时,DenseVector 输出中的额外值是什么? 以下应该是可重现的。 spark = pyspark.sql.SparkSession.builder.getOrC
我写了一个UDF。它非常慢。我想用 pandas_udf 替换它以利用矢量化。 实际的 udf 有点复杂,但我创建了一个简化的玩具版本。 我的问题:是否可以将玩具示例中的 UDF 替换为可以利用矢量化
嘿伙计们,我正在尝试映射我的代码中类型为字符串的属性名称。当我创建映射类并尝试为其分配类型时,我使用以下语法: 属性(x => x.Name, m => { ... m.Type(new String
我在本地计算机2.0版上运行scala。 val schema = StructType(schemaString.split("|^").map(fieldName =>StructField(fi
我在 Scala 测试中有这个错误: StructType(StructField(a,StringType,true), StructField(b,StringType,true), Struct
Scala 2.10 在这里使用 Spark 1.6.2。我有一个与 this one 类似(但不相同)的问题,然而,接受的答案不是 SSCCE并假设对 Spark 有一定的“前期知识”;因此我无法复
在读取不一致的架构写入组 parquet 文件时,我们在架构合并方面遇到问题。切换到手动指定模式时,出现以下错误。任何指针都会有所帮助。 java.lang.UnsupportedOperationE
我有一个RDD[(Seq[String], Seq[String])],数据中包含一些空值。转换为数据帧的 RDD 如下所示 +----------+----------+ | col1|
在读取不一致的架构写入组 parquet 文件时,我们在架构合并方面遇到问题。切换到手动指定模式时,出现以下错误。任何指针都会有所帮助。 java.lang.UnsupportedOperationE
我正在运行 PySpark v1.6.0,并且有一列字符串值(根据 .printSchema),但是当我尝试根据列值以“[”字符开头或包含的情况过滤行时一个“,”字符,在这两种情况下,都表示我期望评估
我有一些使用 Hibernate 3 的代码/应用程序。 它的调用方式如下: query.setParameter("MRC", getPageName(), new StringType()); q
我正在尝试在我的数据集上运行 PySpark 中的 FPGrowth 算法。 from pyspark.ml.fpm import FPGrowth fpGrowth = FPGrowth(items
我有一个包含字符串列的数据框,我计划使用 spark 和 scala 将其用作 k-means 的输入。我正在使用以下方法转换数据框的字符串类型列: val toDouble = udf[Doubl
这是我的代码: import org.apache.spark.sql.SparkSession import org.apache.spark.sql.types._ import org.apac
有什么区别: isinstance(foo, types.StringType) 和 isinstance(foo, basestring) ? 最佳答案 对于 Python2:basestring
我最近从 VS2005 升级到 VS2010。在我的 .Net 2.0 代码中,我引用了 Microsoft.VisualBasic.dll 并使用了 StringType.StrLike方法执行 g
我是一名优秀的程序员,十分优秀!