本地还是远程执行?
因为数据集通常是大的,所以你可以决定最适合您需要的执行机制。例如,如果您正在对大型培训数据集进行向量化,则可以在分布式spark集群中处理它。但是,如果需要进行实时推理,数据向量还提供不需要任何附加设置的本地执行器。
执行一个转换过程
一旦你已经用概要创建了你的转换过程,并且你已经加载你的数据到了一个 Apache Spark JavaRDD
或有一个记录读取器来加载你的数据集,你可以执行一个转换 。
本地执行如下:
import org.datavec.local.transforms.LocalTransformExecutor;
List<List<Writable>> transformed = LocalTransformExecutor.execute(recordReader, transformProcess)
List<List<List<Writable>>> transformedSeq = LocalTransformExecutor.executeToSequence(sequenceReader, transformProcess)
List<List<Writable>> joined = LocalTransformExecutor.executeJoin(join, leftReader, rightReader)
当使用Spark的时候看起来是这样子的:
import org.datavec.spark.transforms.SparkTransformExecutor;
JavaRDD<List<Writable>> transformed = SparkTransformExecutor.execute(inputRdd, transformProcess)
JavaRDD<List<List<Writable>>> transformedSeq = SparkTransformExecutor.executeToSequence(inputSequenceRdd, transformProcess)
JavaRDD<List<Writable>> joined = SparkTransformExecutor.executeJoin(join, leftRdd, rightRdd)
可用的执行器
LocalTransformExecutor 本地转换执行器
isTryCatch
public static boolean isTryCatch()
用给定的输入数据执行指定的转换过程
注意:这个方法仅在转换过程返回一个非序列数据的时候可以用。对于返回序列的转换过程,使用{- link #executeToSequence(List, TransformProcess)}
- 参数 inputWritables 是要处理的输入数据 Input data to process
- 参数 transformProcess 是要执行的转换过程
- 返回处理过的数据
SparkTransformExecutor Spark转换执行器
数spark的弹性数据集上执行一个数据向量转换过程
isTryCatch
public static boolean isTryCatch()
- 不赞成在SparkTransformExecutor用静态方法替代实例方法。
有任何问题请联系微信
如果您觉得我的文章给了您帮助,请为我买一杯饮料吧!以下是我的支付宝,意思一下我将非常感激!