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

关于在spark中指定模式的最佳选择以及如何从rdd spark中删除/删除列的问题?

羊舌新荣
2023-03-14

我有两个数据集纽约出租车数据和天气数据。气象数据有很多列,大约100列,其中我只需要5-10列。我希望它们是类型化的,而不是字符串,因此需要一个模式。我知道两种方法

  1. Rdd公司-

对于100列的内容来说,inferSchema是一个不错的选择,并且不必为100列编写StructType或CaseClass吗?出租车数据有10亿条记录,也有60列左右,但我只需要10列左右。对于此数据集,什么是合适的选择?是否为所有60列写入架构?

第二个问题:正如我提到的,我不需要所有的列,所以我删除了列。从文档和互联网上,我知道了如何使用DF和select函数来完成这项工作。但我必须编写模式,据我所知,只有使用RDD才能编写模式。如何删除/删除RDD中的列?

理想情况下,使用任何RDD/DF id喜欢先删除列,然后指定架构。这可能吗?我知道这有很多问题,但我是一个有火花的新手,所有这些都突然出现在我的脑海中,我想以正确的方式进行。

谢谢

共有1个答案

上官季
2023-03-14

你不需要RDD来实现它,它非常简单。只需将数据加载到DF,然后选择并转换想要的列。

scala> val df = Seq("1","2","3").toDF("c1")
scala> df.show()
+---+
| c1|
+---+
|  1|
|  2|
|  3|
+---+
scala> df.printSchema()
root
 |-- c1: string (nullable = true)

scala> val newDF = df.select('c1.cast("int"))
scala> newDF.printSchema()
root
 |-- c1: integer (nullable = true)
 类似资料:
  • 问题内容: 此代码不适用于MySQL 5.0,如何重写使其正常工作 我想删除没有唯一ID的列。我会在大多数情况下添加唯一的一个ID(我尝试了in语法,它也不起作用)。 问题答案: (子)查询返回结果 集 。因此,您需要使用,而不是在子句中使用。 此外,如该答案所示,您不能在同一查询中的子查询中修改同一表。但是,您可以然后在单独的查询中进行嵌套,也可以嵌套另一个子查询并为内部子查询结果添加别名(尽管

  • 当用户点击按钮时,我试图从JList中删除选中的项目。 目前我有这样的东西: 当我单击按钮删除项目时,出现以下错误: 如何修复此错误,以及我的代码是否删除了多个项目?

  • 我有一个包含大量列的Spark数据框架。我想从中删除两列以获得新的数据帧。 如果列更少,我可以在API中使用select方法,如下所示: 但是既然从长列表中挑选列是一项乏味的任务,有解决方法吗?

  • 问题内容: 如何从选择框中删除项目或向其中添加项目?我正在运行jQuery,这应该使任务更轻松。下面是一个示例选择框。 问题答案: 删除一个选项: 添加一个选项:

  • 问题内容: 我正在尝试使用CSS3 设置元素的样式。我在WebKit(Chrome / Safari)中获得了想要的结果,但是Firefox的运行效果不佳(我什至不担心IE)。我正在使用CSS3 属性,但是由于某些原因,我无法从Firefox中删除下拉图标。 这是我正在做的事的一个例子:http : //jsbin.com/aniyu4/2/edit 如您所见,我并没有尝试任何幻想。我只想删除默认

  • 我想删除我的DataFrame中的第一列,我在网上找到了答案。答案是删除列1、2和4。我想知道为什么这行代码可以删除列,轴在这里的作用是什么?