本节书摘来自华章计算机《Scala机器学习》一书中的第1章,第1.3节,作者:[美] 亚历克斯·科兹洛夫(Alex Kozlov),更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.3 数值字段概述
虽然数据集的大多数列可能是类别(categorical)类型或复杂类型,但这里还是要介绍一下数值数据。通常数值数据会有五种汇总方式,即中位值、均值、四分位数、最小值和最大值。Spark执行中位数和四分位数会特别简单,因此在介绍Spark的DataFrame时再来介绍这两种汇总方式。下面是采用Scala中相应的运算符来计算均值、最小值和最大值:
在多个字段上grep
有时需要知道怎样从多个字段上搜寻特定的值,最常见的是IP/MAC地址、日期和格式化的信息等。比如,若要得到一个文件或文档中的所有IP地址,就可将之前例子中的cut命令替换为grep -o -E 1-9{0,2}(?:\.1-9{0,2}){3}来得到。这里的-o选项表明grep仅获取匹配部分。更精确的IP地址的正则表达式为grep –o –E (?:(?:25[0-5]|20-4|[01]?0-9?).){3} (?:25[0-5]|20-4|[01]?0-9?),但这样会慢50%,第一个正则表达式在大多数实际情形中都有效。这里不介绍如何在本书提供的样例文件上执行这条命令。