草庐IT

sparking

全部标签

hadoop - Spark 看不到默认以外的 Hive 数据库

我尝试通过创建HiveContext通过Spark2.2.1查询Hive表。事实证明,Spark(无论我是通过spark-submit提交作业还是在pysparkshell中运行它——效果相同)都可以工作,但只能看到Hive中的默认数据库,而看不到任何其他数据库。似乎这个问题已经知道一段时间了,所有建议都是关于调整诸如--deploy-mode和--master之类的Spark参数并将hive-site.xml文件显式传递给Spark。在阅读了我能找到的关于这个问题的所有内容后,我将spark-submit命令更改为以下内容:/bin/spark-submit--driver-clas

scala - 在 HDFS 上预组合表并在 Spark 中读取零混洗

上下文我有两个表,作为我的spark作业的一部分,我正在加入/联合分组,这在我每次运行作业时都会导致大量洗牌。我想通过一次存储联合分组数据来分摊所有作业的成本,并将已经联合分组的数据用作我的常规Spark运行的一部分以避免混洗。为了尝试实现这一点,我在HDFS中以Parquet格式存储了一些数据。我正在使用Parquet重复字段来实现以下架构(date,[aRecords],[bRecords])其中[aRecords]表示aRecord数组。我还使用通常的write.partitionBy($"date")在HDFS上按日期对数据进行分区。在这种情况下,aRecords和bRecor

docker - Hadoop Spark docker swarm 其中 pyspark 给出 BlockMissingException 但文件很好

基于https://github.com/gotthardsen/docker-hadoop-spark-workbench/tree/master/swarm我有一个带有hadoop、spark、hue和jupyternotebook设置的dockerswarm设置。我使用Hue将文件上传到hdfs,从hue或名称节点上的hdfs下载或查看文件没有问题。没有丢失block,文件检查表明一切正常。但是当我尝试在jupyter中使用pyspark访问它时,我得到:org.apache.hadoop.hdfs.BlockMissingException:Couldnotobtainbloc

apache-spark - 从一个配置单元读取所有表,然后使用 spark 写入另一个集群上的另一个配置单元

我们可以通过将hive-site.xml放在spark的“conf”方向来从hive读取或写入表。但是现在我有两个可以相互连接的集群。让`假设hive1在集群上,hive2在另一个集群上现在我需要从配置单元1读取数据并做一些转换然后写入配置单元2,问题是我只能将一个hive-site.xml文件放入sparkconf,这意味着当我执行someDataFrame.write.saveAsTable("dbName.tableName"),会保存到hive1而不是hive2,因为spark只识别一个hive(hive1)我的问题是我可以使用spark读写不同集群上的不同配置单元吗?

scala - 使用Spark在hdfs中递归搜索所有文件名

我一直在寻找一种方法来获取Hadoop文件系统(hdfs)中目录及其子目录中的所有文件名。我发现我可以使用这些命令来获取它:sc.hadoopConfiguration.set("mapreduce.input.fileinputformat.input.dir.recursive","true")sc.wholeTextFiles(path).map(_._1)这是“wholeTextFiles”文档:ReadadirectoryoftextfilesfromHDFS,alocalfilesystem(availableonallnodes),oranyHadoop-supporte

apache-spark - PySpark:使用具有 1000 个字段但具有可变列数的行的模式创建 RDD->DF->Parquet

我正在尝试读取一个ElasticSearch索引,它有数百万个文档,每个文档都有可变数量的字段。我有一个模式,其中有1000个字段,每个字段都有自己的名称和类型。现在,当我通过ES-Hadoop连接器创建一个RDD并稍后通过指定模式转换为一个DataFrame时,它没有说-Inputrowdoesn'thaveexpectednumberofvaluesrequiredbytheschema我有几个问题。1.是否有可能有一个RDD/DF的行包含可变数量的字段?如果不是,除了为每列中缺失的字段添加空值外,还有什么替代方法?我看到默认情况下Spark将所有内容转换为StringType,因

scala - Spark : Calculate event end time on 30-minute intervals based on start time and duration values in previous rows

我有一个带有event_time字段的文件,每条记录每30分钟生成一次,并指示事件持续了多少秒。示例:Event_time|event_duration_seconds09:00|80009:30|180010:00|270012:00|100013:00|1000我需要将连续的事件转换为一个具有持续时间的事件。输出文件应如下所示:Event_time_start|event_time_end|event_duration_seconds09:00|11:00|530012:00|12:30|100013:00|13:30|1000ScalaSpark中是否有一种方法可以将数据帧记录与

hadoop - 有多少 Spark JavaRDD 最适合处理数千个文件?

我有数千个文件要处理,它们驻留在HDFS中。我有如下所示的工作解决方案,但我想知道想法RDD计数的最佳实践。目前我只使用一个RDD,它指向HDFS中的数千个文件。//thefollowinglinecontainscommaseparatedfilestoprocessStringfileToProcessList="/user/server1/server.dat,/user/server2/server2.dat";JavaRDDrdd_records=sc.textFile(filetoProcessList).map(newFunction(){publicRecordcall

scala - 有没有办法优化spark sql代码?

更新:我正在使用sparksql1.5.2。尝试读取许多parquet文件并过滤和聚合行-我的hdfs中的~30个文件中存储了~35M行,处理时间超过10分钟vallogins_12=sqlContext.read.parquet("events/2015/12/*/login")vall_12=logins_12.where("event_data.level>=90").select("pid","timestamp","event_data.level").withColumn("event_date",to_date(logins_12("timestamp"))).drop(

hadoop - Spark 流 : How to process using multiple inputs to job?

输入1:KV数据流。输入2:一些静态数据分区(用于处理输入1中的流)问题可以建模为下图:与HDFS/RDD分区共置:我们如何确保流式任务Map1、Map2和Map3在存在HDFS/RDD分区的机器上运行?图像描述:假设K是流式key(不是元组)。FirstMap将其转换为元组(具有空值)并将其广播给3个映射器。每个映射器都在不同的节点上运行,这些节点包含RDD(或HDFS文件,这是第二个输入和静态数据)的不同分区。每个Mapper使用RDD分区来计算键的值。最后,我们要聚合键的值(使用reduceByKey_+_)。 最佳答案 如果