从 Spark 中的参数类型创建 DataType Java API

Creating DataType from a parameter Type in Spark Java API

我正在使用 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)

谁能指导我解决这个问题。

谢谢

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

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

注意:另外,不要加"Type"后缀,否则不起作用,只加SparkSQL类型的名称,如"string""long"

这里是source code了解更多详情