Api 将Linkedin JSON响应加载到配置单元 编辑:将HQL语句更改为映射到JSON结构。但错误依然存在

Api 将Linkedin JSON响应加载到配置单元 编辑:将HQL语句更改为映射到JSON结构。但错误依然存在,api,response,hive,linkedin,Api,Response,Hive,Linkedin,我尝试了多种方法来创建配置单元表并使用JSONSerDe检索数据。但以下是我遇到的错误: hive> select * from jobs; OK Failed with exception java.io.IOException:org.apache.hadoop.hive.serde2.SerDeException: j ava.io.EOFException: No content to map to Object due to end of input hive> sel

我尝试了多种方法来创建配置单元表并使用JSONSerDe检索数据。但以下是我遇到的错误:

hive> select * from jobs;
OK
Failed with exception java.io.IOException:org.apache.hadoop.hive.serde2.SerDeException: j 
ava.io.EOFException: No content to map to Object due to end of input

hive> select values from jobs;

Diagnostic Messages for this Task:
java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error
while processing writable
    at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:159)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java :1408)
以下是表格创建语句:

create external table jobs (
 jobs STRUCT<
   values : ARRAY<STRUCT<
   id : STRING,
   customerJobCode : STRING,
   postingDate : STRING,
   expirationDate : STRING,
 company : STRUCT<
   id : STRING,
   name : STRING>,
 position : STRUCT<
   title : STRING,
   jobFunctions : STRING,
   industries : STRING,
   jobType : STRING,
   experienceLevel : STRING>,
 skillsAndExperience : ARRAY<STRING>,
 descriptionSnippet : ARRAY<STRING>,
 salary : STRING,
 jobPoster : STRUCT<
  id : STRING,
  firstName : STRING,
  lastName : STRING,
  headline : STRING>,
 referralBonus : STRING,
 locationDescription : STRING>>>
 )
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe'
LOCATION '/user/sunita/tables/jobs';
创建外部表作业(
作业结构<
值:数组,
位置:STRUCT<
标题:字符串,
作业函数:字符串,
行业:字符串,
作业类型:字符串,
experienceLevel:STRING>,
技能和经验:阵列,
descriptionSnippet:数组,
薪水:STRING,
海报:STRUCT<
id:STRING,
名字:STRING,
姓氏:STRING,
标题:字符串>,,
参考:字符串,
位置描述:字符串>>>
)
行格式SERDE'com.cloudera.hive.SERDE.JSONSerDe'
位置“/user/sunita/tables/jobs”;
原始输入文件为-

我试图不在表描述中添加“值”(结构数组) 还尝试在输入文件中不使用“值”以及表创建语句。这种方法没有错误,但正如我们所预料的,只有1个条目进入表中,其他所有条目都为null。Hive将其视为导致此问题的单个记录

我试图简化输入以选择较小的字段,但在检索信息时仍然会出现相同的错误。在这方面的任何帮助都是非常感谢的

还使用Notepad++JSON插件确保JSON字符串有效。
任何帮助都会得到真正的响应。

问题是输入文件末尾有一个换行符。确保删除了数据末尾的所有字符,解决了问题。

问题是输入文件末尾出现了换行符。确保我删除了数据末尾的所有字符,从而解决了问题