当前位置: 首页 > 知识库问答 >
问题:

SparkSQL与局部性

司徒骞尧
2023-03-14

我在hdfs之上使用sparksql。
每个hdfs节点都运行一个spark从节点。
当我运行大型查询时,hdfs似乎在节点之间向spark从节点发送数据。
为什么hdfs不使用本地数据为本地spark提供服务?
所有任务都显示本地级别。
我甚至设置了spark.locality.wait=10000。

有什么遗漏或需要查看的吗?

谢谢,

共有1个答案

吴峰
2023-03-14

Spark在作业中运行之前,需要向YARN询问执行器。正因为如此,yarn在不知道数据在哪里的情况下为执行器分配容器。要解决这个问题,您需要告诉spark在创建SparkContext时要创建哪些文件(假设您使用的是scala):

val locData = InputFormatInfo.computePreferredLocations(
    Seq(new InputFormatInfo(conf, classOf[TextInputFormat], new Path(“myfile.txt”)))

val sc = new SparkContext(conf, locData)
 类似资料:
  • 问题内容: 我还是Python的新手,我一直在尝试提高Python脚本的性能,因此我在有或没有全局变量的情况下对其进行了测试。我给它计时,令我惊讶的是,它在声明了全局变量的情况下运行得更快,而不是将局部变量传递给函数。这是怎么回事?我以为局部变量的执行速度更快?(我知道全球人并不安全,我仍然很好奇。) 问题答案: 当地人应该更快 根据此页面上的本地人和全球人: 当一行代码要求输入变量x的值时,Py

  • 问题内容: 我了解Python中局部变量和全局变量的概念,但是我只是有一个问题,为什么下面的代码中会出现错误?Python逐行执行代码,因此在读取第5行之前,它不知道a是局部变量。Python尝试执行第5行后,会回退一行并将其标记为错误吗? 问题答案: 设置和测试 为了分析您的问题,让我们创建两个独立的测试函数来复制您的问题: 版画。因此,调用此函数不是问题,而是在下一个函数上: 我们收到一个错误

  • 这些查询是:select*from t1 where col1='123'[t1由col1 bucketted]select*from t1 where col2='123'[col2不是bucketting列]我的问题是 > 如何确定在查询执行期间正在进行全表扫描还是正在进行相关的部分表扫描? 我能从DAG或物理计划中得到任何信息吗?我两个都看过,但我看不出有什么不同,就像我在物理计划中看到的那

  • 我正在查看C#7.0中的新实现,我发现它们实现了本地函数很有趣,但我无法想象本地函数比lambda表达式更受欢迎的场景,以及两者之间的区别是什么。 我确实理解lambda是匿名函数,而局部函数不是,但我无法理解一个真实场景,其中局部函数比lambda表达式具有优势 任何例子都将不胜感激。谢谢

  • 我仍然对本地二级索引的使用感到困惑。当需要LSI与GSI时,请给我具体的用例。 例如,“GenreAlbumTitle”索引应该是GSI还是LSI?https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.CoreComponents.html#HowItWorks.CoreComponents.Prim

  • 本文向大家介绍浅谈JavaScript的全局变量与局部变量,包括了浅谈JavaScript的全局变量与局部变量的使用技巧和注意事项,需要的朋友参考一下 一、JavaScript scope 的划分标准是function函数块,不是以 if、while、for来划分的 二、JavaScript在执行之前会对整个脚本文件进行预编译(对脚本文件的声明部分做分析,包括局部变量部分),从而确定实变量的作用域