Apache Flink ALS 使用 Long 类型而不是 Int 类型

我正在尝试使用 Flink 1.1.3 版本的 ALS 代码,使用以下命令:

mvn archetype:generate                             \    -DarchetypeGroupId=org.apache.flink            \    -DarchetypeArtifactId=flink-quickstart-scala   \    -DarchetypeVersion=1.1.3                       \    -DgroupId=org.apache.flink.quickstart          \    -DartifactId=flink-scala-project               \    -Dversion=0.1                                  \    -Dpackage=org.apache.flink.quickstart          \    -DinteractiveMode=false

我参考了以下示例代码: https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/libs/ml/als.html,并将数据集中的 Int 类型改为了 Long 类型

val env = ExecutionEnvironment.getExecutionEnvironmentval csvInput: DataSet[(Long, Long, Double)] = env.readCsvFile[(Long, Long, Double)]("tmp-contactos.csv")// 设置 ALS 学习器val als = ALS()  .setIterations(10)  .setNumFactors(10)  .setBlocks(100)// 通过参数映射设置其他参数val parameters = ParameterMap()  .add(ALS.Lambda, 0.9)  .add(ALS.Seed, 42L)// 计算因子分解als.fit(csvInput, parameters)

但在运行时抛出了以下异常:

Exception in thread "main" java.lang.RuntimeException: There is no FitOperation defined for org.apache.flink.ml.recommendation.ALS which trains on a DataSet[(Long, Int, Double)]at org.apache.flink.ml.pipeline.Estimator$$anon$4.fit(Estimator.scala:85)at org.apache.flink.ml.pipeline.Estimator$class.fit(Estimator.scala:55)at org.apache.flink.ml.recommendation.ALS.fit(ALS.scala:122)at org.apache.flink.quickstart.BatchJob$.main(BatchJob.scala:119)at org.apache.flink.quickstart.BatchJob.main(BatchJob.scala)

是否可以使用 Long 类型而不是 Int 类型?

我搜索过,发现了 0.9 版本的相关信息,但没有找到 1.1.3 版本的相关信息:
https://issues.apache.org/jira/browse/FLINK-2211


回答:

目前官方还不支持,但我已经创建了一个分支,修复了这个限制。你可以尝试这个分支。我会将它贡献给 Flink,相信它会在不久的将来成为主分支的一部分。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注