gpt4 book ai didi

java - StringType 问题 : Exception in thread "main" scala. MatchError : org. apache.spark.sql.types.StringType@

转载 作者:行者123 更新时间:2023-12-05 02:45:34 29 4
gpt4 key购买 nike

@Override
public Option<DataType> getCatalystType(int sqlType, String typeName, int size, MetadataBuilder md) {
switch (sqlType) {
case java.sql.Types.JAVA_OBJECT:
switch (typeName) {
case "map(varchar(2147483647),varchar(2147483647))":
return Option.apply(DataTypes.createMapType(new StringType(), new StringType()));
}
break;
}
return super.getCatalystType(sqlType, typeName, size, md);
}

代码用于在返回JAVA_OBJECT时支持复杂数据类型。同样的代码,我用 Scala 编写,运行良好。但是当在 Java 中使用上面的代码时,它给出了:

线程“主”scala.MatchError 中的异常:org.apache.spark.sql.types.StringType@582b14e2(类 org.apache.spark.sql.types.StringType)。


供引用的 Scala 代码:

override def getCatalystType(sqlType: Int, typeName: String, size: Int, md: MetadataBuilder): Option[DataType] = sqlType match {
case java.sql.Types.JAVA_OBJECT =>
typeName match {
case "map(varchar(2147483647),varchar(2147483647))" => Option(DataTypes.createMapType(StringType, StringType))
case "BIT" => Option(BooleanType)
case _ => None
}
case _ => None
}

最佳答案

改用单例 DataTypes.StringType( as recommended ):

...
...(DataTypes.createMapType(DataTypes.StringType, DataTypes.StringType))

The data type representing String values. Please use the singletonDataTypes.StringType.

关于java - StringType 问题 : Exception in thread "main" scala. MatchError : org. apache.spark.sql.types.StringType@,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65931030/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com