DataVec/转换-2
stringMapTransform
public Builder stringMapTransform(String columnName, Map<String, String> mapping)
在指定的列中用新的值替换一个或多个字符串值。map中的键是旧值;map中的值是要替换的新值。如果一个字符出现在数据中但不在map中,这个字符将不会被修改。
- 参数columnName是需要进行替换值的列
- 参数mapping是旧值和新值的映射
stringToTimeTransform
public Builder stringToTimeTransform(String column, String format, DateTimeZone dateTimeZone)
把一个字符列(包括一个日期/时间字符)转换为时间列(通过解析日期/时间字符)
- 参数column是包括日期/时间字符的列
- 参数format是字符串的格式,时间格式按http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html 里的格试指定
- 参数dateTimeZone是列的时区
appendStringColumnTransform
public Builder appendStringColumnTransform(String column, String toAppend)
追加一个字符串到指定的列
- 参数column是要追加字符串的列
- 参数toAppend是要被追加到每个writable尾部的字符串
conditionalReplaceValueTransform
public Builder conditionalReplaceValueTransform(String column, Writable newValue, Condition condition)
如果条件满足,把指定的例的值替换成指定新值。如果条件不满足,旧的值不会被修改。
- 参数column是需要被操作的列
- 参数newValue是当条件满足,用来替换旧值的字符串。
- 参数condition是必须满足的条件
conditionalReplaceValueTransformWithDefault
public Builder conditionalReplaceValueTransformWithDefault(String column, Writable yesVal, Writable noVal, Condition condition)
如果条件满足,将指定的列的值替换为指定的“yes”值,如果不满足条件,替换为指定的“no”值。
- 参数column是需要被操作的列
- param yesVal Value to use as replacement, if condition is satisfied 参数yesVal是在条件满足时用来替换旧值的值
- 参数noVal是在条件不满足时用来替换旧值的值
- 参数condition是必须满足的条件
conditionalCopyValueTransform
public Builder conditionalCopyValueTransform(String columnToReplace, String sourceColumn, Condition condition)
如果条件满足,从另外一个列取值将指定的列值替换。需要注意的是条件可以是任何通用条件,包括在其它列上,不同于如果满足条件的情况下将被修改的列。
- 参数columnToReplace是条件满足,值被替换的列。
- 参数sourceColumn用于替换旧值的列名
- 参数condition是要用的条件
replaceStringTransform
public Builder replaceStringTransform(String columnName, Map<String, String> mapping)
在指定的列中替换一个或多个匹配正则表达式的字符串值。map中的键是正则表达式;map中的值是用于替换旧值的新值。例如:
原值 正则表达式 用于替换旧值的新值 结果 Data_Vec _ DataVec B1C2T3 \\d one BoneConeTone '  4.25 ' ^\\s+|\\s+$ '4.25'
- 参数columnName是要进行替换的列
- 参数mapping是旧值或正则表达式与新值的映射
ndArrayScalarOpTransform
public Builder ndArrayScalarOpTransform(String columnName, MathOp op, double value)
在NDArray列上的点积数学运算
- 参数columnName是要进行计算的NDArray列名
- 参数op是要进行的数学运算
- 参数value进行数学运算需要的值
ndArrayColumnsMathOpTransform
public Builder ndArrayColumnsMathOpTransform(String newColumnName, MathOp mathOp, String... columnNames)
在NDArray列上进行一个点积数学运算(例如加法,减法,乘法)。已有列不会被改变,一个新的NDArray列会被添加。
- 参数newColumnName是新的NDArray列列名
- 参数mathOp是要进行的数学运算
- 参数columnNames是用于运算的列名
ndArrayMathFunctionTransform
public Builder ndArrayMathFunctionTransform(String columnName, MathFunction mathFunction)
在一个NDArray列上应用于个点积运算函数 (sin, tanh, abs 等)。这个操作在原来的列上进行。
- 参数columnName是要进行运算的列名
- 参数mathFunction是要进行应用的函数
ndArrayDistanceTransform
public Builder ndArrayDistanceTransform(String newColumnName, Distance distance, String firstCol,
String secondCol)
在两个大小相同的NDArray列上计算距离(余弦相似度,欧几里得,马哈顿)。这个操作会用结果添加一个新的列。
- 参数newColumnName是新的结果列的列名
- 参数distance是应用的距离
- 参数firstCol是要参与距离计算的第一个列
- 参数secondCol是要参与距离计算的第二个列
build
public TransformProcess build()
创建一个TransformProcess对像
CategoricalToIntegerTransform 分类到整型转换
Created by Alex on 4/03/2016.
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
CategoricalToOneHotTransform 分类到OneHot码转换
Created by Alex on 4/03/2016.
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
IntegerToCategoricalTransform 整型到分类转换
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
PivotTransform 转置变换
转置变换在两个列上操作。
- 作为一个键值操作的一个分类列
- 另外一列包括一个必要的值,转置变换取键值对把它们分解为独立的列。
例如,用概要 [col0, key, value, col3]和带有键{a,b,c}的值,输出概要为 [col0, key[a], key[b], key[c], col3]并且输入(col0Val, b, x, col3Val) 映射到(col0Val, 0, x, 0, col3Val)。
当列被扩大时,默认值会被使用,例如0用作数字列。
transform
public Schema transform(Schema inputSchema)
- 参数keyColumnName为用于扩展的键列
- 参数valueColumnName是包括值的列名称
StringToCategoricalTransform 字符串到分类转换
把一个字符串列转换为分类列
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数param是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
AddConstantColumnTransform 添加常量列变换
添加一个新列,列中所有记录的值都是相同的
DuplicateColumnsTransform
复制一个或多个列。被复制的列就在原列的后面。
transform
public Schema transform(Schema inputSchema)
- 参数columnsToDuplicate是需要复制的列的列表
- 参数newColumnNames是被复制后新列的名称
map
public Object map(Object input)
把一个对象转换为另外一个对象
- 参数input是需要转换的对象
- 返回一个转换后的writable对象
mapSequence
public Object mapSequence(Object sequence)
转换一个序列
- 参数sequence为要转换的序列
outputColumnName
public String outputColumnName()
运算被执行后输出的列名
- 返回输出列名
columnName
public String columnName()
输出列名,这将经常和输入相同
- 返回输出列名
有任何问题请联系微信