首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何动态获取spark数据帧中列的数据类型

如何动态获取spark数据帧中列的数据类型
EN

Stack Overflow用户
提问于 2018-05-28 02:38:04
回答 1查看 2.1K关注 0票数 2

我有一个dataframe转换成的dtype到map。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val dfTypesMap:Map[String,String]] = df.dtypes.toMap

输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(PRODUCT_ID,StringType)
(PRODUCT_ID_BSTP_MAP,MapType(StringType,IntegerType,false))
(PRODUCT_ID_CAT_MAP,MapType(StringType,StringType,true))
(PRODUCT_ID_FETR_MAP_END_FR,ArrayType(StringType,true))

当我在row.getAS[String]中使用类型字符串硬编码时,没有编译错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
df.foreach(row => {
  val prdValue = row.getAs[String]("PRODUCT_ID")
})

我想在映射dfTypesMap上迭代并获得相应的值类型。有没有办法将dt列类型转换为如下所示的常规类型?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
StringType --> String
MapType(StringType,IntegerType,false) ---> Map[String,Int]
MapType(StringType,StringType,true) ---> Map[String,String]
ArrayType(StringType,true) ---> List[String]
EN

回答 1

Stack Overflow用户

发布于 2018-05-30 08:46:34

如前所述,数据集使处理类型变得更容易。Dataset基本上是强类型JVM对象的集合。

您可以将数据映射到case类,如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
case class Foo(PRODUCT_ID: String, PRODUCT_NAME: String)
val ds: Dataset[Foo] = df.as[Foo]

然后,您就可以安全地操作类型化对象了。在你的情况下,你可以这样做

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ds.foreach(foo => {
  val prdValue = foo.PRODUCT_ID
})

有关数据集的详细信息,请访问https://spark.apache.org/docs/latest/sql-programming-guide.html#creating-datasets

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50558426

复制
相关文章
在Pandas中更改列的数据类型【方法总结】
有什么方法可以将列转换为适当的类型?例如,上面的例子,如何将列2和3转为浮点数?有没有办法将数据转换为DataFrame格式时指定类型?或者是创建DataFrame,然后通过某种方法更改每列的类型?理想情况下,希望以动态的方式做到这一点,因为可以有数百个列,明确指定哪些列是哪种类型太麻烦。可以假定每列都包含相同类型的值。
kirin
2021/04/19
20.4K0
在Pandas中更改列的数据类型【方法总结】
Pandas vs Spark:获取指定列的N种方式
本篇继续Pandas与Spark常用操作对比系列,针对常用到的获取指定列的多种实现做以对比。
luanhz
2021/04/12
11.5K0
python如何获取动态页面数据
在日常使用python爬取数据的时候会遇到一些动态页面,有些网页的HTML代码是由javascript动态生成的,直接爬取可能会出现无法加载的情况,需要用phantomJS和selenium模拟浏览器,之后再爬取。
小白学大数据
2023/06/05
9430
问与答63: 如何获取一列数据中重复次数最多的数据?
Q:如下图1所示,在工作表列A中有很多数据(为方便表述,示例中只放置了9个数据),这些数据中有很多重复数据,我想得到重复次数最多的数据是那个,示例中可以看出是“完美Excel”重复的次数最多,如何获得这个数据?
fanjy
2019/08/20
3.6K0
问与答63: 如何获取一列数据中重复次数最多的数据?
如何在 Pandas 中创建一个空的数据帧并向其附加行和列?
Pandas是一个用于数据操作和分析的Python库。它建立在 numpy 库之上,提供数据帧的有效实现。数据帧是一种二维数据结构。在数据帧中,数据以表格形式在行和列中对齐。它类似于电子表格或SQL表或R中的data.frame。最常用的熊猫对象是数据帧。大多数情况下,数据是从其他数据源(如csv,excel,SQL等)导入到pandas数据帧中的。在本教程中,我们将学习如何创建一个空数据帧,以及如何在 Pandas 中向其追加行和列。
很酷的站长
2023/08/11
3610
如何在 Pandas 中创建一个空的数据帧并向其附加行和列?
xtraReprot 动态绑定数据 数据列动态
我要做的报表模板要求是传入一个DataTble,不管datatable的列数多少,计算列宽后显示报表
乔达摩@嘿
2020/09/10
1.6K0
获取GridView中的某列值
    protected void GridView1_RowEditing(object sen
Java架构师必看
2021/03/22
10.2K0
使用spark对hive表中的多列数据判重
本文处理的场景如下,hive表中的数据,对其中的多列进行判重deduplicate。 1、先解决依赖,spark相关的所有包,pom.xml spark-hive是我们进行hive表spark处理的关键。 <dependencies> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.10</artifactId> <ver
用户1225216
2018/03/05
5.2K0
根据数据源字段动态设置报表中的列数量以及列宽度
在报表系统中,我们通常会有这样的需求,就是由用户来决定报表中需要显示的数据,比如数据源中共有八列数据,用户可以自己选择在报表中显示哪些列,并且能够自动调整列的宽度,已铺满整个页面。本文就讲解一下Act
葡萄城控件
2018/01/10
4.9K0
根据数据源字段动态设置报表中的列数量以及列宽度
treeview 如何从多个数据表中获取数据动态生成 [提问]
在 汪洋怡舟的这篇文章中【http://www.cnblogs.com/longren629/archive/2007/03/14/674633.html】只使用了一个数据表,效果如图2
跟着阿笨一起玩NET
2018/09/19
6.6K0
treeview 如何从多个数据表中获取数据动态生成 [提问]
python获取数据类型
isinstance(a,b)函数里边有两个参数,其中第一个参数为输入的要判断的变量,第二个参数是你定义的数据类型,如果输入的变量的数据类型和自己定义的数据类型相同,则返回True,否则返回False。如下所示:
狼啸风云
2019/05/15
1.3K0
Js获取数据类型
JavaScript有着七种基本类型String、Number、Boolean、Null、Undefined、Symbol、Object,前六种为基本数据类型,Object为引用类型。
WindRunnerMax
2020/08/27
9.4K0
获取MySql每一列的数据类型和长度默认值等信息
如何获取MySql表中各个列的数据类型? show columns from tablename 返回结果如下: id    int(11)     NO  PRI         auto_incr
码农阿宇
2018/04/18
4.2K0
获取MySql每一列的数据类型和长度默认值等信息
MySQL中的数据类型_js中的数据类型
整数类型一共有 5 种,包括 TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)和 BIGINT
全栈程序员站长
2022/11/05
6.7K0
MySQL中的数据类型_js中的数据类型
视频中的 I 帧,P 帧,B 帧
视频传输原理 视频是由一幅幅帧图像和一组音频构成的,视频的播放过程可以简单理解为一帧帧的画面按照时间顺序呈现出来的过程。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大。这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。 编码器将多张图像进行编码后生产成一段一段的 GOP ( Group of Pictures ) 如下图, 解码器在播放时则是读取一段一段的 GOP 进行解码后读取画面再渲染显示。GO
用户1097444
2022/06/29
3.6K0
视频中的 I 帧,P 帧,B 帧
用过Excel,就会获取pandas数据框架中的值、行和列
至此,我们已经学习了使用Python pandas来输入/输出(即读取和保存文件)数据,现在,我们转向更深入的部分。
fanjy
2021/11/29
19.3K0
用过Excel,就会获取pandas数据框架中的值、行和列
listview动态获取数据
1.主Activity 1 public class MainActivity extends Activity { 2 3 private ListView listView; 4 private ArrayList<Person> persons; 5 private ListAdapter adapter; 6 private Handler handler=null; 7 //xml文件的网络地址 8 final String pa
xiangzhihong
2018/01/26
3.2K0
Spark中SQL列和并为一行
但是在 spark 中没有 GROUP_CONCAT 命令,查找后发现命令 concat_ws :
机器学习和大数据挖掘
2019/07/02
1.7K0
点击加载更多

相似问题

如何获取Spark streaming数据帧中列的延迟?

14

如何根据数据类型在Spark Dataframe中动态更改列数据类型

112

如何在spark SQL中获取列的数据类型?

30

如何动态更改数据帧中列的数据类型

31

如何获取Spark数据帧的spark SQLContext?

210
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文