Questions tagged «apache-spark»

Apache Spark是用Scala编写的开源分布式数据处理引擎,为用户提供了统一的API和分布式数据集。Apache Spark的用例通常与机器/深度学习,图处理有关。

1
Apache Beam相对于Spark / Flink的批处理有什么好处?
Apache Beam支持多个运行程序后端,包括Apache Spark和Flink。我熟悉Spark / Flink,并试图了解Beam用于批处理的优点/缺点。 看一下Beam的字数示例,感觉它与本机Spark / Flink等效项非常相似,也许语法稍微冗长。 我目前看不到选择Beam代替Spark / Flink来实现此任务有什么好处。到目前为止,我只能做的观察: 优点:不同执行后端的抽象。 缺点:这种抽象是以降低对Spark / Flink中确切执行的内容的控制为代价的。 是否有更好的示例来突出Beam模型的其他优点/缺点?是否有失去控制如何影响性能的信息? 请注意,我并不是在要求流传输方面的差异,该问题已部分涵盖在本文中,并在本文中进行了概述(由于Spark 1.X已过时)。

1
在什么情况下可以使用Dask代替Apache Spark?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我目前正在使用Pandas和Spark进行数据分析。我发现Dask提供了并行化的NumPy数组和Pandas DataFrame。 Pandas使用Python进行数据分析既简单又直观。但是由于系统内存有限,我发现难以处理Pandas中的多个较大数据帧。 简单答案: Apache Spark是一个包罗万象的框架,结合了分布式计算,SQL查询,机器学习以及在JVM上运行的更多功能,并且通常与Hadoop等其他大数据框架共同部署。...一般而言,Dask比Spark更轻巧。 我从http://dask.pydata.org/en/latest/spark.html了解以下详细信息 轻巧轻巧 Dask通常在单台计算机上使用,但在分布式集群上也可以很好地运行。 Dask提供并行数组,数据框,机器学习和自定义算法 Dask对Python用户具有优势,因为它本身就是Python库,因此在出现问题时进行序列化和调试会更加顺利。 Dask放弃了高级理解,以允许用户表达更复杂的并行算法。 Dask的重量更轻,并且更易于集成到现有代码和硬件中。 如果您想要一个可以完成所有任务的项目,并且已经在大数据硬件上,那么Spark是一个安全的选择 Spark通常用于中小型集群,但也可以在一台机器上很好地运行。 我从下面的链接https://www.continuum.io/blog/developer-blog/high-performance-hadoop-anaconda-and-dask-your-cluster了解有关Dask的更多信息 如果在将Pandas,NumPy或其他计算与Python配合使用时在一台计算机上遇到内存问题,存储限制或CPU边界,Dask可以帮助您在单台计算机上扩展所有核心,或进行扩展在整个群集的所有核心和内存上。 Dask在单台机器上运行良好,可以利用笔记本电脑上的所有内核并处理大于内存的数据 在具有数百个节点的群集上灵活地伸缩。 Dask从Python原生处理具有不同格式和存储系统的数据,包括Hadoop分布式文件系统(HDFS)和Amazon S3。Anaconda和Dask可以与您现有的企业Hadoop发行版一起使用,包括Cloudera CDH和Hortonworks HDP。 http://dask.pydata.org/en/latest/dataframe-overview.html 局限性 Dask.DataFrame没有实现整个Pandas接口。用户对此感到失望。值得注意的是,dask.dataframe具有以下限制: 从未排序的列设置新索引非常昂贵 许多操作,例如groupby-apply和未排序列上的join都需要设置索引,如上所述,这很昂贵 熊猫API非常大。Dask.dataframe不会尝试实现许多熊猫功能或任何更奇特的数据结构,例如NDFrames 感谢Dask开发人员。似乎是很有前途的技术。 总的来说,我可以理解Dask比spark更易于使用。达斯(Dask)与熊猫(Pandas)一样灵活,具有更大的计算能力和更多的CPU并行度。 我了解上述有关Dask的所有事实。 因此,使用Dask可以处理大约多少数据(以TB为单位)?

10
Spark Dataframe区分名称重复的列
因此,正如我在Spark Dataframe中所知道的那样,多个列可以具有相同的名称,如下面的dataframe快照所示: [ Row(a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0})), Row(a=107831, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0, 3: 0.0, 4: 0.0}), a=125231, f=SparseVector(5, {0: 0.0, 1: 0.0, 2: 0.0047, 3: 0.0, 4: …


15
如何将PyCharm与PySpark链接?
我是apache spark的新手,显然我在macbook中安装了带自制程序的apache-spark: Last login: Fri Jan 8 12:52:04 on console user@MacBook-Pro-de-User-2:~$ pyspark Python 2.7.10 (default, Jul 13 2015, 12:05:58) [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin Type "help", "copyright", "credits" or "license" for more information. Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties 16/01/08 14:46:44 INFO SparkContext: Running Spark version …


8
Scala编译时如何防止java.lang.OutOfMemoryError:PermGen空间?
我注意到我的Scala编译器有一个奇怪的行为。编译类时,有时会抛出OutOfMemoryError。这是错误消息: [info] Compiling 1 Scala source to /Users/gruetter/Workspaces/scala/helloscala/target/scala-2.9.0/test-classes... java.lang.OutOfMemoryError: PermGen space Error during sbt execution: java.lang.OutOfMemoryError: PermGen space 它只会偶尔发生一次,并且通常不会在随后的编译运行中引发该错误。我使用Scala 2.9.0并通过SBT进行编译。 是否有人知道导致此错误的原因?预先感谢您的见解。

6
如何在Spark 2.0+中编写单元测试?
我一直在尝试找到一种合理的方法来SparkSession使用JUnit测试框架进行测试。尽管似乎有很好的示例SparkContext,SparkSession但即使在spark-testing-base的内部多个地方使用了相应的示例,我也无法弄清楚该示例如何工作。如果不是真正正确的方法,我很乐意尝试一种不使用基于火花测试的解决方案。 简单的测试用例(带有的完整MWE项目build.sbt): import com.holdenkarau.spark.testing.DataFrameSuiteBase import org.junit.Test import org.scalatest.FunSuite import org.apache.spark.sql.SparkSession class SessionTest extends FunSuite with DataFrameSuiteBase { implicit val sparkImpl: SparkSession = spark @Test def simpleLookupTest { val homeDir = System.getProperty("user.home") val training = spark.read.format("libsvm") .load(s"$homeDir\\Documents\\GitHub\\sample_linear_regression_data.txt") println("completed simple lookup test") } } 用JUnit运行它的结果是在负载线处有一个NPE: java.lang.NullPointerException at SessionTest.simpleLookupTest(SessionTest.scala:16) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at …

9
如何使saveAsTextFile不将输出分成多个文件?
在Spark中使用Scala时,每当我使用来转储结果时saveAsTextFile,似乎会将输出分成多个部分。我只是将参数(路径)传递给它。 val year = sc.textFile("apat63_99.txt").map(_.split(",")(1)).flatMap(_.split(",")).map((_,1)).reduceByKey((_+_)).map(_.swap) year.saveAsTextFile("year") 输出数量是否与其使用的减速器数量相对应? 这是否意味着输出已压缩? 我知道我可以使用bash将输出组合在一起,但是是否可以选择将输出存储在单个文本文件中而不拆分?我看了一下API文档,但是关于它并没有说太多。


2
有没有办法获取Spark数据帧的前1000行?
我正在使用该randomSplit函数来获取少量数据帧以用于开发目的,而我最终只是采用了此函数返回的第一个df。 val df_subset = data.randomSplit(Array(0.00000001, 0.01), seed = 12345)(0) 如果我使用它,df.take(1000)那么我最终将得到一个行数组,而不是一个数据框,因此这对我不起作用。 是否有更好,更简单的方法来获取df的前1000行并将其存储为另一个df?

4
我应该为Spark选择哪种集群类型?
我是Apache Spark的新手,我刚刚了解到Spark支持三种类型的集群: 独立-意味着Spark将管理自己的集群 YARN-使用Hadoop的YARN资源管理器 Mesos-Apache的专用资源管理器项目 由于我是Spark的新手,所以我认为我应该先尝试Standalone。但是我不知道推荐哪个。说,将来我需要构建一个大型集群(数百个实例),我应该选择哪种集群类型?



13
在Spark DataFrame写入方法中覆盖特定分区
我想覆盖特定的分区,而不是全部覆盖。我正在尝试以下命令: df.write.orc('maprfs:///hdfs-base-path','overwrite',partitionBy='col4') 其中df是具有要覆盖的增量数据的数据帧。 hdfs-base-path包含主数据。 当我尝试上述命令时,它将删除所有分区,并在hdfs路径中的df中插入这些分区。 我的要求是只覆盖指定hdfs路径中df中存在的那些分区。有人可以帮我吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.