После чтения файла JSON из HCFS в виде простого текста вы можете отобразить его на JSONObject
, используя настраиваемый преобразователь :
import org.apache.flink.api.java.DataSet;
import org.apache.sling.commons.json.JSONObject;
DataSet<JSONObject> jsonInput =
input
.map(record -> record.f1.toString())
.map(StringToJsonObject::new);
JSONObject
код сопоставителя на основе приведенного выше примера:
import org.apache.flink.api.common.functions.MapFunction;
import org.apache.sling.commons.json.JSONObject;
public class StringToJsonObject implements MapFunction<String, JSONObject> {
private static final long serialVersionUID = 4573928723585302447L;
public JSONObject map(String content) throws Exception {
return new JSONObject(content);
}
}
При необходимости вы можете сопоставить String
с POJO вместо универсального JSONObject
, используя сопоставитель, аналогичный this .