Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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
将具有12个嵌套级别的json文件读取到AZURE hdinsights中的配置单元中_Json_Hive_Apache Spark Sql_Spark Dataframe_Azure Hdinsight - Fatal编程技术网

将具有12个嵌套级别的json文件读取到AZURE hdinsights中的配置单元中

将具有12个嵌套级别的json文件读取到AZURE hdinsights中的配置单元中,json,hive,apache-spark-sql,spark-dataframe,azure-hdinsight,Json,Hive,Apache Spark Sql,Spark Dataframe,Azure Hdinsight,我试图手动为json文件创建一个模式,并试图创建一个配置单元表 列类型名称长度10888超过了允许的最大长度2000 我猜我必须更改metastore的详细信息,但我不确定配置在azure Hdinsights中的位置 我尝试的另一种方式是 我从spark dataframe获得模式,并尝试从视图创建表,但仍然得到相同的错误 这是我在spark中尝试的步骤 val tne1 = sc.wholeTextFiles("wasb:path").map(x=>x._2) val sqlConte

我试图手动为json文件创建一个模式,并试图创建一个配置单元表 列类型名称长度10888超过了允许的最大长度2000

我猜我必须更改metastore的详细信息,但我不确定配置在azure Hdinsights中的位置

我尝试的另一种方式是 我从spark dataframe获得模式,并尝试从视图创建表,但仍然得到相同的错误

这是我在spark中尝试的步骤

val tne1 = sc.wholeTextFiles("wasb:path").map(x=>x._2)
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
val tne2 = sqlContext.read.json(tne1)   
tne2.createOrReplaceTempView("my_temp_table");
sqlContext.sql("create table s  ROW FORMAT SERDE  'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES (  'hive.serialization.extend.nesting.levels'='true') as select * from my_temp_table")
我在这一步中得到了错误

org.apache.spark.sql.AnalysisException:org.apache.hadoop.hive.ql.metadata.HiveException:InvalidObjectException(消息:无效列类型名称长度5448超过了允许的最大长度2000,类型为struct
当我尝试持久化或创建rdd时,我会在格式化视图中获得架构。即使我获得完整视图,我也可能会提取架构。

我通过Ambari>Hive>Configs>Advanced>Custom Hive site添加了以下属性: hive.metastore.max.typename.length=14000。 现在,我能够创建列类型名称长度高达14000的表