Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/129.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
Apache spark 复杂的json日志数据转换使用?_Apache Spark_Apache Spark Sql_Avro_Spark Avro - Fatal编程技术网

Apache spark 复杂的json日志数据转换使用?

Apache spark 复杂的json日志数据转换使用?,apache-spark,apache-spark-sql,avro,spark-avro,Apache Spark,Apache Spark Sql,Avro,Spark Avro,我是数据科学工具的新手,有一个将json日志转换为扁平柱状数据(可能被认为是正常的csv)的用例,我正在研究许多替代方案(工具)为了解决这个问题,我发现我可以使用Apache Spark Sql轻松地解决这个问题,但问题是我的json日志可能是一个带有层次数组的复杂数据结构,也就是说,我必须多次分解数据集才能对其进行转换 问题是我不想硬编码数据转换的逻辑,因为我希望用不同的转换逻辑重用相同的代码块,或者以更好的方式,我希望我的转换由配置而不是代码驱动 出于同样的原因,我研究了apacheavro

我是数据科学工具的新手,有一个将json日志转换为扁平柱状数据(可能被认为是正常的csv)的用例,我正在研究许多替代方案(工具)为了解决这个问题,我发现我可以使用Apache Spark Sql轻松地解决这个问题,但问题是我的json日志可能是一个带有层次数组的复杂数据结构,也就是说,我必须多次分解数据集才能对其进行转换

问题是我不想硬编码数据转换的逻辑,因为我希望用不同的转换逻辑重用相同的代码块,或者以更好的方式,我希望我的转换由配置而不是代码驱动

出于同样的原因,我研究了apacheavro,它为我定义自己的输入模式提供了自由,但这里的问题是我不知道是否也可以定义输出模式?如果不是,那么它将与读取avro数据结构(生成的)并将其过滤到我的代码逻辑中相同

我能想到的一个可能的解决方案是定义我的模式以及数组字段和一些标志,以通知我的解析器对它们进行分解,这可能也是递归的,直到我将输入模式转换为输出,即根据我的输入和输出模式生成转换逻辑

有没有更好的方法是我不知道或无法思考的