Apache spark 使用Hive作为数据仓库对我的案例有什么好处?
目前,我正在尝试采用大数据来取代我目前的数据分析平台。我目前的平台非常简单,我的系统从各种上游系统获得了很多结构化的csv提要文件,然后,我们将它们作为java对象(即内存中)加载以进行聚合 我正在寻找使用Spark代替java对象层来进行聚合过程 我知道Spark支持从hdfs/文件系统加载文件。因此,作为数据仓库的Hive似乎不是必须的。但是,我仍然可以先将csv文件加载到配置单元,然后使用Spark从配置单元加载数据 我这里的问题是,在我的情况下,如果我引入一个配置单元层,而不是直接将csv文件加载到Spark DF,有什么好处 谢谢Apache spark 使用Hive作为数据仓库对我的案例有什么好处?,apache-spark,hive,bigdata,Apache Spark,Hive,Bigdata,目前,我正在尝试采用大数据来取代我目前的数据分析平台。我目前的平台非常简单,我的系统从各种上游系统获得了很多结构化的csv提要文件,然后,我们将它们作为java对象(即内存中)加载以进行聚合 我正在寻找使用Spark代替java对象层来进行聚合过程 我知道Spark支持从hdfs/文件系统加载文件。因此,作为数据仓库的Hive似乎不是必须的。但是,我仍然可以先将csv文件加载到配置单元,然后使用Spark从配置单元加载数据 我这里的问题是,在我的情况下,如果我引入一个配置单元层,而不是直接将cs
你不需要加载任何东西。您可以在hdfs/文件系统目录上创建外部表,并使用metastore(包括spark)中的任何内容进行查询。如果您以满载和增量方式处理数据,则使用配置单元层,因为您必须以表格式存储昨天的数据,并使用今天的数据进行增量处理。如果您只进行提取、转换并将其存储回普通文件系统,那么您只需使用spark即可,无需加载任何内容。您可以在hdfs/文件系统目录上创建外部表,并使用metastore(包括spark)中的任何内容进行查询。如果您以满载和增量方式处理数据,则使用配置单元层,因为您必须以表格式存储昨天的数据,并使用今天的数据进行增量处理。如果您只进行提取、转换并将其存储回普通文件系统,则只能使用spark。对于2,我可以使用spark SQL而不是HiveQLYes。您可以始终这样做,但您需要将数据从csv加载到dataframe/temp表,然后提交作业以获得结果。这就像一个批处理过程。使用HiveQL,感觉就像执行SQL查询一样是交互式查询。对不起,我是spark的新手。我想知道是否有可能将所有csv数据作为“全局表”加载到dataframe,并让spark会话中的每个用户查询它。您可以这样做,但您真的需要将所有数据加载到内存中吗。配置单元表数据是持久化的,所有用户都可以访问表并使用数据,但我不确定是否有一个用户将数据作为数据帧加载到内存中,并可供所有其他用户使用,我不喜欢这个想法。对于2,我可以使用Spark SQL而不是HiveQLYes您可以随时这样做,但您需要将数据从csv加载到dataframe/temp表,然后提交作业以获得结果。这就像一个批处理过程。使用HiveQL,感觉就像执行SQL查询一样是交互式查询。对不起,我是spark的新手。我想知道是否有可能将所有csv数据作为“全局表”加载到dataframe,并让spark会话中的每个用户查询它。您可以这样做,但您真的需要将所有数据加载到内存中吗。配置单元表数据是持久化的,所有用户都可以访问表并使用数据,但我不确定是否有一个用户将数据作为数据帧加载到内存中,并且可以被所有其他用户使用,我不喜欢这个想法。