Тот же вопрос, что и здесь, но у меня недостаточно очков, чтобы комментировать.
Согласно последней документации Spark, udf
может использоваться двумя различными способами: один с SQL, а другой с DataFrame. Я нашел несколько примеров того, как использовать udf
с SQL, но не смог найти ни одного о том, как использовать udf
непосредственно в DataFrame.
Решение, предоставленное __callUDF()__
по вопросу, связанному выше, использует __callUDF()__
который является _deprecated_
и будет удален в Spark 2.0 в соответствии с документацией Spark Java API. Там написано:
"так как это избыточно с помощью udf()"
так что это означает, что я должен иметь возможность использовать __udf()__
для __udf()__
моего udf
, но я не могу понять, как это сделать. Я не сталкивался ни с чем, что объясняет синтаксис программ Java-Spark. Что мне не хватает?
import org.apache.spark.sql.api.java.UDF1;
.
.
UDF1 mode = new UDF1<String[], String>() {
public String call(final String[] types) throws Exception {
return types[0];
}
};
sqlContext.udf().register("mode", mode, DataTypes.StringType);
df.???????? how do I call my udf (mode) on a given column of my DataFrame df?