Scala 如何在EMR中运行的MapReduce作业中转义JSON禁止八进制前缀异常
我正在对EMR集群中s3中的json数据运行映射作业。我已经在本地hadoop机器上成功运行了我的应用程序。但是,当我尝试在EMR上运行我的作业时,它给了我一个例外 错误:com.google.gson.JsonSyntaxException:com.google.gson.stream.MalformedJsonException:JSON禁止第1行第263列的八进制前缀:04099 代码和数据如下所示 {“_id”:“101P04098”,“name”:“Jodeco路/222出口”,“timezoneId”:3150,“length”:2.3259222706745657,“travelTimeBySpeedCategoryInHr”:0.017891709774419732,“tmcType”:“ROADWAY”,“functionalClass”:1,“controlledAccess”:true,“geoTag”:[33.4774,-84.2158],“positiveOffset”:“04099”,“negativeOffset”:“04635”,“areaReference”:“00009”,“isArterial”:false,“linkList”:”:[{“_id”:127168058,“长度”:1.0751088091361,“directionofrink”:“FROM”{“id”:17007579,“length”:0.0759730295122253,“directionofrink”:“FROM”},{“id”:17007580,“length”:1.06750755312816,“directionofrink”:“FROM”{“id”:17007581,“length”:0.10733287889808,“directionofrink”:“FROM”}”Scala 如何在EMR中运行的MapReduce作业中转义JSON禁止八进制前缀异常,scala,hadoop,amazon-s3,gson,emr,Scala,Hadoop,Amazon S3,Gson,Emr,我正在对EMR集群中s3中的json数据运行映射作业。我已经在本地hadoop机器上成功运行了我的应用程序。但是,当我尝试在EMR上运行我的作业时,它给了我一个例外 错误:com.google.gson.JsonSyntaxException:com.google.gson.stream.MalformedJsonException:JSON禁止第1行第263列的八进制前缀:04099 代码和数据如下所示 {“_id”:“101P04098”,“name”:“Jodeco路/222出口”,“ti
对象TmcListReader{
val gson:gson=new GsonBuilder().setFieldNamingStrategy(new FieldNamingStrategy{
覆盖def translateName(f:字段):字符串={
if(f.getName==“id”)“\u id”else f.getName}).create}
TmcListReader类{
导入TmcListReader_
def ReadLocationsTables(输入:源,tmcTables:List[String]):List[String]={
val tClocations:
List[String]=input.getLines().map(gson.fromJson(_,classOf[TmcLocation]).getId).toList
tmcLocations.filter{location=>tmcTables包含location.table}
}
在JSON中,似乎不应该将pad数字保留为零。因此,在上述情况下,“04099”可能需要变成“4099”
你可能已经发现了这个问题,或者可能不需要答案,但将我的问题与你的问题进行比较有助于我找出问题的症结所在,因此我想我会与其他人分享,以防其他人也有同样的问题。在我的情况下,我有一个月的“06”,需要变成“6”