Rah*_*rma 3 java scala apache-spark
Java 中以下 Scala 代码片段的确切翻译是什么?
import org.apache.spark.sql.functions.udf
def upper(s:String) : String ={
s.toUpperCase
}
val toUpper = udf(upper _)
peopleDS.select(peopleDS(“name”),toUpper(peopledS(“name”))).show
Run Code Online (Sandbox Code Playgroud)
请填写下面缺少的语句java eg
import org.apache.spark.sql.api.java.UDF1;
UDF1 toUpper= new UDF1<String, String>() {
public String call(final String str) throws Exception {
return str.toUpperCase(); }};
peopleDS.select(peopleDS.col("name"), /*how to run toUpper("name"))?????*/.show();
Run Code Online (Sandbox Code Playgroud)
注意:注册 udf 然后使用 selectExpr 调用对我有用,但我需要上面显示的类似内容。
工作示例:
sqlContext.udf().register("toUpper",(String s)->s.toUpperCase(), DataTypes.StringType);
peopleDF.selectExpr("toUpper(name)","name").show();
Run Code Online (Sandbox Code Playgroud)
在java中调用UDF而不注册是不可能的。请检查在未注册的情况下在 Java 中使用 UDF。下面是您的 UDF。
private static UDF1 toUpper = new UDF1<String, String>() {
public String call(final String str) throws Exception {
return str.toUpperCase();
}
};
Run Code Online (Sandbox Code Playgroud)
注册UDF就可以使用callUDF函数了。
private static UDF1 toUpper = new UDF1<String, String>() {
public String call(final String str) throws Exception {
return str.toUpperCase();
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7187 次 |
| 最近记录: |