DataVec/转换-3
RemoveAllColumnsExceptForTransform 移除指定列的转换
该转换移除除显式指定的作为保留的列之外的所有列。
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
RemoveColumnsTransform 移除列转换
Remove the specified columns from the data. To specify only the columns to keep,
从数据中移除指定的列。来指定需人保留的列。
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
RenameColumnsTransform 重命名列转换
重命名一个或多个列
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
ReorderColumnsTransform 重排序列转换
重排序列。注意:这里可以使用列的部分列表。没有明确提到的任何列都将放在输出中的列之后,而不改变它们的相对顺序。
transform
public Schema transform(Schema inputSchema)
- 参数newOrder是输列中一部份或全部列
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
ConditionalCopyValueTransform 有条件复制值变换
如果条件满足,从另外一个列取值将指定的列值替换。需要注意的是条件可以是任何通用条件,包括在其它列上,不同于如果满足条件的情况下将被修改的列。注意:对于序列,此转换使用将序列中的每个步骤传递给条件,并分别替换(或不替换)的约定(即,Condition.condition(List)在每个时间步骤上被使用)。
transform
public Schema transform(Schema inputSchema)
- 参数columnToReplace是需要被替换旧值的列
- 参数sourceColumn是用来获取新值的列名
- 参数condition是条件
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
ConditionalReplaceValueTransform 有条件替换值转换
如果条件满足,在指定的列中用新值替换旧值。注意,条件可以是任何通用条件,包括在其他列上,不同于如果条件满足则将修改的列。
注意:对于序列,此转换使用将序列中的每个步骤传递给条件,并分别替换(或不替换)的约定(即,Condition.condition(List)在每个时间步骤上被使用)。
transform
public Schema transform(Schema inputSchema)
- 参数columnToReplace是如果条件成立需要用新值替换旧值的列
- 参数 newValue是要使用新值
- 参数condition是条件
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
ConditionalReplaceValueTransformWithDefault
如果条件满足,将指定的列的值替换为指定的“yes”值,如果不满足条件,替换为指定的“no”值。
注意,条件可以是任何通用条件,包括在其他列上,不同于如果条件满足则将修改的列。
注意:对于序列,此转换使用将序列中的每个步骤传递给条件,并分别替换(或不替换)的约定(即,Condition.condition(List)在每个时间步骤上被使用)。
ConvertToDouble
把任何值转换为双精度类型
map
public DoubleWritable map(Writable writable)
- 参数column是要转换为双精度类型的列名
DoubleColumnsMathOpTransform 双精度列数学运算变换
添加一个新的双精度列,从一个或多个别的列计算而来。一个新列(指定的名称)作为输出的最终列被添加。没有别的列被修改。
例如,如果新列的名称==”newCol”, 数学运算==Add, 并且参与运算的列=={“col1”,”col2”},那么名为newCol的输出列的值为col1+col2。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
DoubleMathFunctionTransform 双精度函数转换
一个简单的转换,用于数学运算,例如sin(x), ceil(x)等
DoubleMathOpTransform 双精度数学运算转换
双精度数学运算。
这是一个内部的双精度列值和双精度标量的运算。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
Log2Normalizer Log2归一化器
通过log2((in-列最小值)/(均值-列最小值) + 1)的比例来归一化。in的范转是 (列最小值 到 无穷大) 到 (0 到 无穷大)。最适合于具有几何/负指数型分布的值。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
MinMaxNormalizer 最小值最大值归一化器
用于建立 (最小值 到 最大值) -> (新最小值 到新最大值)的线性映射的归一化器
数学:(新最大值-新最小值)/(最大值-最小值) (x-最小值) + 新最小值
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
StandardizeNormalizer 标准化归一化器
使用(X-MIN)/STDEV归一化。也称为标准分数、标准化等。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
SubtractMeanNormalizer 减法平均值归一化器
通过减去平均值归一化
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
ConvertToInteger 转换为整型
把任意值转换为整型。
map
public IntWritable map(Writable writable)
- 参数column是用来转换为整型的列名。
IntegerColumnsMathOpTransform 整型列数学运算转换
添加一个新的整型列,从一个或多个别的列计算而来。一个新列(指定的名称)作为输出的最终列被添加。没有别的列被修改。
例如,如果新列的名称==”newCol”, 数学运算==Add, 并且参与运算的列=={“col1”,”col2”},那么名为newCol的输出列的值为col1+col2。
注意:如果要求十进制输出值,则这里使用除法。
toString
public String toString()
- 参数newColumnName是输出列的列名newColumnName
- 参数mathOp是数学运算。这里只允许加法/乘法/除法/求模。
- 参数columns是参与数学运算的列
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
IntegerMathOpTransform 整型数学运算
整型数学运算
这是一个内部的整型列值和整型标量的运算。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
IntegerToOneHotTransform 整型到OneHot码骗转换
把一个整型列转换为one-hot列集合
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
ReplaceEmptyIntegerWithValueTransform 用指定值替换空的整型转换
用一个值替换空白缺失的整型数据
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
ReplaceInvalidWithIntegerTransform 用整型替换无效值转换
用指定的整数替换列中无效的整数
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
LongColumnsMathOpTransform 整型列数学运算转换
添加一个新的长整型列,从一个或多个别的列计算而来。一个新列(指定的名称)作为输出的最终列被添加。没有别的列被修改。
例如,如果新列的名称==”newCol”, 数学运算==Add, 并且参与运算的列=={“col1”,”col2”},那么名为newCol的输出列的值为col1+col2。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
LongMathOpTransform 长整型数学计算转换
长整型数学运算
这是一个内部的长整型列值和长整型标量的运算。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
TextToCharacterIndexTransform 文本到字符索引转换
将一个序列中的每个文本值转换为一个较长的整数索引序列。例如,“abc” 将被转换为 [1, 2, 3]。其他列中的值将被复制。
TextToTermIndexSequenceTransform 文本到词元索引序列转换
将一个序列中的每个文本值转换为一个较长的整数索引序列。例如,“zero one two” 将被转换为 [0, 1, 2。其他列中的值将被复制。
SequenceDifferenceTransform 序列差分转换
对于一个输入序列,计算一个列上的差异。对于每一个时间t,计算someColumn(t) - someColumn(t-s), 这个 s >= 1 是“回环”期.
注意:在t=0(在序列中的第一个步骤;或更通常的,所有小于s的时间t),这些时间步没有之前的值:
1.默认:输出=someColumn(t) - someColumn(max(t-s, 0))
2.指定值:如果t-s >= 0或一个定制的Writable对象(例如,a DoubleWritable(0) 或 NullWritable)那么输出= someColumn(t) - someColumn(t-s)
注意:这是一个原地的运算:每个列的值被修改。如果原始值进行了差分运算,则原地复制。
outputColumnName
public String outputColumnName()
用默认的回环1创建一个序列差分转换,并使用FirstStepMode.Default。输出列与输入列一样。
- 参数columnName是进行进算的列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
SequenceMovingWindowReduceTransform 序列移动窗口缩减变换
序列移动窗口缩减变换:添加一个新列,它的值是:
(a)使用单个列中最后n个值的窗口
(b)在窗口上应用一个缩减操作来计算一个新值,例如,这个转换器可以用于实现一个最后n个值的一个简单移动平均,或确定最后N个时间步长中的最小值或最大值。
defaultOutputColumnName
public static String defaultOutputColumnName(String originalName, int lookback, ReduceOp op)
枚举指定如何处理每个实例:例如,对于一个周期为20的回环,第一个19的输值应该怎么计算?
默认:和通常一样进行以前的缩减,有很多的值可用。
指定值:用指定的值替代实际的输出值。例如,你可以分配0或NullWritable到输出的0到18的位置。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
SequenceOffsetTransform 序列偏移转换
序列偏移变换采用一个序列,并在一个或多个列中以指定的次数步转换。它具有2种操作模式(OperationType enum),相对于它运行的列:
原处:将在原处进行操作,修改指定列中的值。
新列:操作可能产生新列,原始(源)列保持未修改。
此外还有两种模式(EdgeHandling enum)处理原始序列之外的值:
修剪序列: 整个序列被一个指定的步骤修剪
指定值:对任何原始序列之外的值,他们将被给一个指定的值。
注意1:当指定偏移量时,它们按如下方式完成:正偏移:将指定列中的值移动到稍后的时间。更早的时间步长要么被修剪要么给定指定的值;这些列中的最后值将被截断/删除。
注意2:在使用TrimSequence时必须小心:例如,如果我们在一个数据集上链接多个序列偏移转换,那么最终可能修剪得比我们想象的要多得多。在这种情况下,最终使用指定值可能更好。
AppendStringColumnTransform 追加字符串列转换
在一个列中追加一个字符串
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的记录
- 返回一个转换后的writable对象
ChangeCaseStringTransform 更改大小写字符串转换
更改一个字符串列的大小写(例如全改为小写)
ConcatenateStringColumns 连接的字符串列
把一个或多个字符串列连接成一个新的字符串列。保留组成字符串列,所以如果需要,用户必须手动删除他们。
TODO: 在数据向量中使用新的字符缩减功能?
transform
public Schema transform(Schema inputSchema)
- 参数columnsToConcatenate是输出中的列的部份或所有全部顺序
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
ConvertToString
把任意值转换为字符串
map
public Text map(Writable writable)
把writable转换为字符串
- 参数writable是要进行转换的writable
- 返回这个writable的字符串
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的对象
- 返回一个转换后的writable对象
MapAllStringsExceptListTransform 映射除了列表外的所有字符转换
此方法将所有字符串值(除了指定的列表)映射为单个字符串值。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的对象
- 返回一个转换后的writable对象
RemoveWhiteSpaceTransform 移除空白转换
移除所有空白字符的转换
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的对象
- 返回一个转换后的writable对象
ReplaceEmptyStringTransform 替换空字符转换
用指定的字符串替换空白字符串
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的对象
- 返回一个转换后的writable对象
ReplaceStringTransform 替换字符转换
替换匹配正则表达式的字符串值
map
public Text map(final Writable writable)
用指定的参数构建ReplaceStringTransform对象
- 参数columnName是列的名称
- 参数map的键是正则表达式;值是用来替换旧值的值。
StringListToCategoricalSetTransform 字符列表到分类集合转换
将一个分割后的字符列表转换为一个二分类列。假设可能的字符值为{“a”,”b”,”c”,”d”}并且需要转换的字符列所括了字符“a,c”,那么4个输出列应该有这样的值[“true”,”false”,”true”,”false”]
transform
public Schema transform(Schema inputSchema)
- 参数columnName是需要转换的列名
- 参数newColumnNames是需要创建的新列名
- 参数 categoryTokens 是可能存在的令牌。注意:此列表必须具有与新列名称列表相同的长度和顺序。
- 参数delimiter是用于转换的字符的分割符
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
StringListToCountsNDArrayTransform 字符列表到统计的NDArray转换
把字符列转换为词袋,作为一个NDArray的统计。
需要注意的是原来的列会被移除
transform
public Schema transform(Schema inputSchema)
- 属性columnName是要转换的列名
- 属性vocabulary是可能存在的令牌
- 属性delimiter是要转换的字符串的分隔符
- 属性ignoreUnknown代表是否要忽略不认识的令牌
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
StringListToIndicesNDArrayTransform 字符列表到索引的NDArray转换
将字符列转换为稀疏的词袋,代表NDArray的索引。在嵌入到密集数组之前适合嵌入或作为有效存储。
StringMapTransform 字符映射变换
一个简单的字符到字符的映射函数。
map中的键为原来的值;map中的值是用来替换原值的值。如果字符出现在数据中但没有在提供的map中出现,这个字符值将不被修改。
map
public Text map(Writable writable)
- param columnName Name of the column
- param map Key: From. Value: To
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的记录
- 返回一个已被转换的writable
DeriveColumnsFromTimeTransform 从时间得到列的变换
通过获取时间列的值得到一些列。可以用于用年,月,日,小时,分钟,秒等作为新列的例子。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的记录
- 返回一个已被转换的writable
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
toString
public String toString()
运算被应用后输出列名称
- 返回输出列名称
StringToTimeTransform 字符串到时间转换
用JodaTime 通过解析日期/时间字符串,把一个字符列转换为时间列。时间格式是按 http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html指定的
getNewColumnMetaData
public ColumnMetaData getNewColumnMetaData(String newName, ColumnMetaData oldColumnType)
初始化时不需要指定一个时间格式。如果这个构造方法被使用,该变换将被允许处理静态格式数组中定义的几种常见变换。
- 参数columnName是字符串列名
- 参数timeZone是用于解析时间的时区
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的记录
- 返回一个已被转换的writable
TimeMathOpTransform 时间数学运算转换
在一个时间列上进行数学运算
需要注意的是:仅支持这些数学运算:加法,减法,标量最小值,标量最大值
对于标量最小值和最大值,时间单位必须是毫秒,值为纪元毫秒格式。
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的记录
- 返回一个已被转换的writable
有任何问题请联系微信
上一篇: DataVec/转换-2
下一篇: php修改文件名的函数是什么