当前位置: 首页 > 知识库问答 >
问题:

spark数据集中的类型安全是什么意思?

常波
2023-03-14

我试图理解Dataset和data frame之间的区别,并找到了以下有用的链接,但我无法理解类型安全是什么意思?

DataFrame(在Spark 2.0中,即DataSet[Row])与Spark中RDD之间的差异

共有1个答案

阮健
2023-03-14

RDD和数据集是类型安全的意思是编译器知道列和它的数据类型是长的,字符串等...

但是,在Dataframe中,每次调用一个操作(例如collection())时,它将返回一个数组的结果,这些数组的长度不是字符串数据类型。在dataframe中,列有它们自己的类型,如integer、String,但它们不向您公开。对你来说,它是任何类型的。要将数据行转换为合适的类型,必须使用.AsInstanceOf方法。

在Scala中:

scala > :type df.collect()
Array[org.apache.spark.sql.Row]


df.collect().map{ row => 
    val str = row(0).asInstanceOf[String]
    val num = row(1).asInstanceOf[Long]
}                      
 类似资料:
  • 在这种情况下,有人能帮助理解类型安全的含义吗? 我对Javadoc-https://docs . spring . io/spring-framework/docs/3 . 1 . 4 . release/Javadoc-API/org/spring framework/context/annotation/components can . html # base packages()的理解有些不

  • 问题内容: 该链接指出以下内容: 具有实际类型参数的泛型类型的实例化称为参数化类型。示例(参数化类型): 那么什么是参数化类型? 要么 问题答案: 它们都是参数化类型:以其他类型为参数的类型。 您在表达式的两侧具有不同类型的事实是无关紧要的,并且与多态行为有关,即因为是的子类型。

  • 问题内容: 我看过的利弊一些文章,并在Java编程语言。在其中一篇文章中,作者提到: StringBuilder 不是 线程安全的 ,因此在 多个线程中 使用 StringBuffer 。 不幸的是,我不明白这意味着什么。你能解释一下之间的区别,以及特别是在“线程安全”的环境。 如果您可以使用代码示例进行描述,我将不胜感激。 问题答案: 如果多个线程正在修改a的相同实例,则结果可能是意外的- 即某

  • 在这段代码中: 为什么我们需要?那是类型铸造,对吗? 假设赋值语句右侧的是大写字母。我想我们在做Unicode的加法和减法。 这是我正在阅读的Java书籍中的片段: 对char执行算术时,首先将其转换为在Unicode系统中表示它的int。从变量c中减去“A”本质上是问“c中的字符在大写字母中有多远?”然后,添加'a'将产生int,该int与小写字母字符代码序列的距离相同。之所以需要转换为char

  • 问题内容: 我想为我正在执行的映射操作在DataSet中为Row类型编写一个编码器。本质上,我不了解如何编写编码器。 以下是地图操作的示例: 我知道,编码器需要编写如下字符串,而不是字符串: 但是,我不了解编码器中的clsTag(),并且我试图找到一个可以演示类似内容的运行示例(即,用于行类型的编码器) 编辑- 这不是所提问题的副本:尝试将数据框行映射到更新行时出现编码器错误,因为答案涉及在Spa

  • 在Java中解析类型是什么意思? 下面是一些用法示例,我试图理解它们: 从: 如果基础字段的类型是类型变量或参数化类型,则创建它。否则,它被解决。 需要创建类型变量或参数化类型才能使这种形式的反射工作,因为它们无法加载,因为它们在运行时并不真正“存在” 所以,如果某个东西在运行时存在,它可以被“解决”?通过类加载器 从: 根据此类型所表示的类型上下文解析给定的类型。例如: 这个我一点也不明白。不确