数据集 map()函数介绍

567 阅读4分钟

Dataset map

数据集地图简介

数据集映射的定义是:数据集的接口就像面向对象的编程,具有编码功能,它是序列化和反序列化的概念,数据集是Spark SQL中的结构,也有编码器来转换对象和内部二进制格式。map()函数是用于通过一对一的转换来映射数据集的函数,例如,通过参数转换,函数可以将数据集元素映射到数据集的转换元素,map()函数将名称作为第一参数,元素作为第二参数,返回类型作为第三参数。

什么是数据集地图?

map是一个可以通过一对一转换来映射数据集的函数,转换取决于参数,这意味着函数的映射将通过元素的转换来完成,map()函数也允许我们在一个迭代中处理和转换所有的元素,而不使用循环,所以我们可以说map可以代替循环,通过使用它,数据序列可以通过map()函数进行转换,其中它也取决于提供给它的函数。

为什么使用数据集地图?

数据集被用来映射顶级容器,它也被用来控制和组织表和视图,因为表和视图属于数据集,所以在大查询中加载数据之前,它至少创建了一个数据集,通过使用简单的SQL语句,数据集可以与数据库通信,我们可以说,数据集是与数据库通信的通信器。

因此,数据集是特定领域对象的集合,它非常强大,可以通过使用函数或任何类型的关系操作来转换元素,每个数据集都有一个非类型的视图,它被称为数据帧,也是数据集的一行,数据集上的操作可以分为行动和转换。其中,转换是给出一个新的数据集的操作,而动作是一种触发器,通过计算我们可以得到一个结果,数据集在计算方面有些懒惰,因为它们只计算动作,只有当动作完成后才能被触发,所以要将元素从一种类型转换到另一种类型,我们需要对数据集进行映射。

数据集结构

我们可以向map传递一个函数,当它应该是map()时,它从系列中获取一个单一的值,它将返回该转换值的转换版本,map()函数是一个新的系列值,其中所有的值都已经通过函数进行了转换。

转换map的语法是,map()转换,它从一个数据集中返回数据值。

数据集由一系列记录或数据组成,可以用df标准来写,其中记录是一系列字节,有助于一起读写数据,记录的概念只有在有二进制数据表示时才有用,它还包含统一的记录集,并被组织成功能组,它的设计不包含非序列数据,可以通过使用数据集来防止。

数据集的结构是这样规定的。

<Dataset>:: = <Test> <object> {<object>}
<object>:: = <OBJDESC> <AUDIT> [<INFOSPEC>] {<COMMENT>} <DIMSPEC0> <DIMSPEC1> <DIMSPEC2>
[<DIMSPEC3> ] <DESCRIP0> <Dimgroup1>
{<Dimgroup1> } <Dimgroup2> {<Dimgroup2> }
[ <Dimgroup3> { <Dimgroup3> } ] {<BADVAL> } { <Procgroup> }  { <Auxgroup> }
<Regdata> | <Packdata> | <Compdata>
<Dimgroup1>:: =  < DESCRIP1>  <DESCVAL>  [ <DESCSUP> ] {<Descgroup>}
<Dimgroup2>:: =  <DESCRIP2>  <DESCVAL>  [ <DESCSUP> ] {<Descgroup> }
<Dimgroup3> ::=  <DESCRIP3>  <DESCVAL>  [ <DESCSUP> ] { <Descgroup> }
<Descgroup> ::=  <DESCRIP>  <DESCVAL>  [ <DESCSUP> ] <Procgroup> ::=  <PROCSPEC>  [ <PROCFORM>  <PROCVAL> ] {<PROCDUP> }
<Auxgroup> ::= <AUXSPEC> <AUXRANGE> <AUXVAL> [ <AUXSUP> ] <Regdata> ::= <REGDAT> { <REGDAT> }
<Packdata> ::= <Packgroup> { <Packgroup> } <PAKDAT>
{<PAKDAT>}
<Compdata> ::= <Compgroup> <COMPDAT> { <COMPDAT> }
<Packgroup>  ::=  <PAKSPEC>  [ <PAKFORM>  <PAKVAL> ] <Compgroup> ::=   <COMPSPEC>  <COMPLEN>
[<COMPFORM> <COMPVAL> ]

以上是数据集的结构。

例子#1

<!DOCTYPE html>
<html>
<body>
<h2>JavaScript mapping</h2>
<p>Multiply each element in the array with 10:</p>
<p id="demo"></p>
<script>
const numbers = [64, 42, 13, 5];
const newArr = numbers.map(myFunction);
document.getElementById("demo").innerHTML = newArr;
function myFunction(num) {
return num * 10;
}
</script>
</body>
</html>

输出

Dataset map output 1

上面的例子,我们用JavaScript写的,我们试图通过与给定列表中的每个元素相乘来映射每个元素,为此,我们创建了一个脚本,其中有一个数字列表,并采取了一个函数,并将num作为参数传递,输出结果如上所示。

例子 #2:

<!DOCTYPE html>
<html>
<body>
<h2>Mapping of function by using array</h2>
<p>Display a new array with the name of each person in the old array:</p>
<p id="demo"></p>
<script>
const persons = [
{firstname : "Malvika", lastname: "Ronoldo"},
{firstname : "Kaylee", lastname: "Fricy"},
{firstname : "Jaine", lastname: "Cobble"}
];
document.getElementById("demo").innerHTML = persons.map(getFullName);
function getFullName(item) {
return [item.firstname,item.lastname].join(" ");
}
</script>
</body>
</html>

输出

Dataset map output 2

在这个例子中,我们写了一个JavaScript代码,通过使用一个数组来映射函数,为此我们采取了数组的方式,通过使用函数,我们试图传递列表中的项目,然后通过连接得到另一个列表,如上面的输出屏幕截图所示。

总结

在这篇文章中,我们解释了数据集地图的概念,地图是用来映射数据集的函数,我们也看到了使用它的原因,我们也解释了一些例子,这篇文章也将得出结论,map()函数是用于一对一的转换的。