Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何在EMR中运行的MapReduce作业中转义JSON禁止八进制前缀异常_Scala_Hadoop_Amazon S3_Gson_Emr - Fatal编程技术网

Scala 如何在EMR中运行的MapReduce作业中转义JSON禁止八进制前缀异常

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

我正在对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”}”

对象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”