草庐IT

java - 使用 Spark Dataframe 的 Hive 分区中缺少日期前导零

我正在向SparkDataframe添加一个分区列。新列包含年月日。我的数据框中有一个时间戳列。DataFramedfPartition=df.withColumn("year",df.col("date").substr(0,4));dfPartition=dfPartition.withColumn("month",dfPartition.col("date").substr(6,2));dfPartition=dfPartition.withColumn("day",dfPartition.col("date").substr(9,2));当我输出数据帧时,我可以看到列的正确值,

java - Spark `FileAlreadyExistsException` when `saveAsTextFile` 即使输出目录不存在

这个问题在这里已经有了答案:Howtooverwritetheoutputdirectoryinspark(9个回答)关闭6年前。我正在运行这个命令行:hadoopfs-rm-r/tmp/output然后是一个带有main()的Java8spark作业SparkConfsparkConf=newSparkConf();JavaSparkContextsc=newJavaSparkContext(sparkConf);JavaRDDrdd=sc.textFile("/tmp/input").map(s->newJSONObject(s))rdd.saveAsTextFile("/tmp/

hadoop - Spark + yarn 簇: how can i configure physical node to run only one executor\task each time?

我的环境包含4个物理节点和少量RAM,每个节点有8个CPU内核。我注意到spark会自动决定为每个CPU分配RAM。结果是发生了内存错误。我正在处理大数据结构,我希望每个执行程序都将在物理节点上拥有整个RAM内存(否则我会遇到内存错误)。我尝试在“yarn-site.xml”文件上配置“yarn.nodemanager.resource.cpu-vcores1”或在spark-defaults.conf上配置“spark.driver.cores1”但没有成功。 最佳答案 尝试设置spark.executor.cores1

hadoop - Spark SQL 不返回 HDP 上 HIVE 事务表的记录

我在HDP设置上遇到了这个问题,事务表只需要一次压缩就可以使用SparkSQL获取记录。另一方面,Apache设置甚至不需要压缩一次。可能是压缩后在元存储上触发了某些东西,SparkSQL开始识别增量文件。如果需要其他详细信息来找出根本原因,请告诉我。试试这个,查看完整场景:hive>createtabledefault.foo(idint)clusteredby(id)into2bucketsSTOREDASORCTBLPROPERTIES('transactional'='true');hive>insertintodefault.foovalues(10);scala>sqlCo

hadoop - 在集群部署模式下运行 spark 提交作业失败但通过客户端

EDITI:通过删除应用程序中“setMaster”的conf设置,我能够成功运行yarn-cluster-如果有人可以帮助sparkmaster作为集群部署-那太棒了我正在尝试在本地测试机上设置spark,以便我可以从s3存储桶中读取数据,然后写回它。使用客户端运行jar/应用程序工作正常,很好,很好,因为它进入存储桶并创建一个文件并再次返回。然而,我需要它在集群模式下工作,以便它更接近我们的生产环境,但它总是失败——我能看到的日志中没有真正有意义的消息,也没有什么反馈可以继续。非常感谢任何帮助-我是spark/hadoop的新手,所以可能忽略了一些明显的事情。我也尝试以yarn-c

hadoop - 从 Spark 作业创建 FS 的快照

我想在运行spark作业时创建底层HDFS的快照。特定步骤涉及删除某些Parquet文件的内容。我想创建快照执行删除操作,验证操作结果并继续执行后续步骤。但是,我找不到从我的spark作业访问HDFSAPI的好方法。我要创建快照的目录在HDFS中被标记/标记为可快照。创建快照的命令行方法有效,但是我需要以编程方式执行此操作。我在CDH5.5上运行Spark1.5。关于如何执行此操作的任何提示线索?谢谢内存开发 最佳答案 我还没有验证这一点,但至少我没有遇到编译错误,理论上这个解决方案应该有效。这是Scala代码:valsc=newS

hadoop - Spark Streaming 可以选择特定文件吗

我的程序不断从hadoop文件夹(例如/hadoopPath/)读取流。它从上述文件夹中挑选所有文件。我可以只为这个文件夹拍摄特定的文件类型吗(比如:/hadoopPath/*.log)我还有一个与Spark和流相关的问题:Issparkstreamingworkswithboth"cp"and"mv" 最佳答案 几个小时以来,我一直在为同一个问题苦苦挣扎,虽然它看起来很简单,但我在网上找不到任何相关信息。最后,我找到了适合我的情况的解决方案。我把它放在这里是为了为遇到同样问题的其他人节省一些时间。假设您只想读取具有“path-to

hadoop - 如何将一行与 spark 数据集中的所有其他行进行比较?

我有一个从MySQL加载的spark数据集,我想将每一行与数据集中的所有其他行进行比较,并使用获得的结果创建一个新的数据集。有什么办法可以实现吗? 最佳答案 您可能想通过匹配行的字段来连接两个数据集。你可以像这样匹配两个数据集并加入这两个数据集valResult=DF1.join(DF2,(DF1("USER_ID")===DF2("USER_ID"))&&(DF1("SESSION_ID")===DF2("SESSION_ID"))&&(DF1("日期")===DF2("日期"))).select(DF1("USER_ID"),D

r - Spark 错误 : No rows dropped by 'na.omit' call

当我尝试将ml_decision_tree或ml_logistic_regresion与Sparklyr包一起使用时,出现以下错误。我在cloudera集群上使用spark2.1.0。>Norowsdroppedby'na.omit'call.Errorin>stop(simpleError(sprintf(fmt,...),if(call.)>sys.call(sys.parent()))):baderrormessage下面是我运行的代码片段:at%ft_string_indexer(input.col=col,output.col=paste0(col,"_in"))%>%ft_

java - 由于不可序列化的对象,Spark 作业失败

我正在运行一个spark作业来为我的HBase数据存储生成HFiles。它曾经在我的Cloudera集群上运行良好,但是当我们切换到EMR集群时,它失败并显示以下堆栈跟踪:Serializationstack:-objectnotserializable(class:org.apache.hadoop.hbase.io.ImmutableBytesWritable,value:5031363132373033345f493635383431353835);notretryingSerializationstack:-objectnotserializable(class:org.apa