从spark java api中的参数类型创建数据类型

dwthyt8l  于 2021-05-27  发布在  Hadoop
关注(0)|答案(1)|浏览(316)

我在用spark 2.3。我想从给定的类型参数创建一个datatype对象:例如stringtype,integertype。。。
我试过这个:

String type="StringType" or String type="IntegerType";
DataType dataType=DataType.fromJson(type);

我有个例外

Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'StringType': was expecting ('true', 'false' or 'null')
 at [Source: StringType; line: 1, column: 21]
    at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1702)

有人能指导我解决这个问题吗。
谢谢

7d7tgy0s

7d7tgy0s1#

请记住,方法是被调用的 fromJson . 因此,您需要提供一个有效的json,并简单地将类型用双引号括起来,如下所示:

String type="string" // or String type="integer";
DataType dataType=DataType.fromJson("\"" + type + "\"");

注意:另外,不要添加“type”后缀,否则它将不起作用,只添加sparksql类型的名称,例如 "string" 或者 "long" .
以下是源代码以获取更多详细信息

相关问题