小编hil*_*lel的帖子

为什么Spark SQL认为索引的支持不重要?

引用Spark DataFrames,Datasets和SQL手册:

Spark中还没有包含少数Hive优化.由于Spark SQL的内存计算模型,其中一些(如索引)不太重要.其他版本用于将来的Spark SQL版本.

作为Spark的新手,我有点困惑,原因有两个:

  1. Spark SQL旨在处理大数据,至少在我的用例中,数据大小远远超过可用内存的大小.假设这并不罕见,"Spark SQL的内存计算模型"是什么意思?Spark SQL是否仅适用于数据适合内存的情况?

  2. 即使假设数据适合内存,对非常大的数据集进行全扫描也需要很长时间.我在内存数据库中读取了这个反对索引的论点,但我并不相信.那里的例子讨论了一个10,000,000记录表的扫描,但这不是真正的大数据.扫描具有数十亿条记录的表可能导致"SELECT x WHERE y = z"类型的简单查询永远不会立即返回.

我理解索引有诸如较慢的INSERT/UPDATE,空间要求等缺点.但在我的用例中,我首先处理并将大批数据加载到Spark SQL中,然后将这些数据作为一个整体进行探索,而无需进一步修改.Spark SQL对于初始分布式处理和数据加载很有用,但缺乏索引使得交互式探索比我预期的更慢,更麻烦.

我想知道为什么Spark SQL团队认为索引不重要到它的路线图之外的程度.是否有不同的使用模式可以提供索引的好处,而无需独立实现等效的东西?

sql bigdata in-memory-database apache-spark apache-spark-sql

35
推荐指数
2
解决办法
1万
查看次数

让PyCharm认出Anaconda的SciPy

我需要在PyCharm IDE中使用SciPy库(在Mac OSX Lion机器上).SciPy网站写道,Mac用户最简单的安装方法是安装Anaconda(或同等的发行版).我使用了Anaconda安装程序,它在我的主文件夹中创建了一个anaconda目录,在那里我找到了一个lib/python2.7/site-packages包含所需包的目录.但是,PyCharm并不知道所有这些,并且SciPy导入语句仍未解决.

我的问题是如何让PyCharm与Anaconda合作?

python scipy pycharm anaconda

16
推荐指数
1
解决办法
2万
查看次数

Apache Spark中的非线性(DAG)ML管道

我已经建立了一个简单的Spark-ML应用程序,我有一个独立的变换器管道,可以将列添加到原始数据的数据框中.由于变压器不看彼此的输出,我希望我可以在非线性(DAG)管道中并行运行它们.我可以找到关于此功能的所有内容来自Spark ML-Guide:

只要数据流图形成有向无环图(DAG),就可以创建非线性管道.目前,此图基于每个阶段的输入和输出列名称(通常指定为参数)隐式指定.如果管道形成DAG,则必须按拓扑顺序指定阶段.

我对段落的理解是,如果我为每个转换器设置inputCol(s),outputCol参数并在创建管道时以拓扑顺序指定阶段,那么引擎将使用该信息来构建执行DAG的阶段.一旦输入就绪,DAG就可以运行了.

关于这个的一些问题:

  • 我的理解是否正确?
  • 如果对于其中一个阶段/变换器我没有指定输出列(例如,阶段仅过滤某些行),会发生什么?它是否会假设为了DAG创建目的,阶段正在改变所有列,以便所有后续阶段都应该等待它?
  • 同样,如果其中一个阶段我没有指定inputCol(s)会发生什么?舞台是否会等到所有前一阶段完成?
  • 我似乎可以指定多个输入列但只能指定一个输出列.如果变换器向数据帧添加两列(Spark本身没有问题)会发生什么?有没有办法让DAG创建引擎了解它?

apache-spark apache-spark-ml apache-spark-mllib

8
推荐指数
1
解决办法
1316
查看次数

如何实现Spark select-explode成语?

假设我们有一个带有字符串列的DataFrame col1,以及一个数组列col2.我想知道Spark操作幕后发生了什么:

df.select('col1', explode('col2'))

似乎select将一系列Column对象作为输入,并且explode返回a Column以使类型匹配.但是返回的列explode('col2')在逻辑上与长度不同col1,所以我想知道select在构造其输出DataFrame时如何知道"同步"它们.我试着查看Column类的线索,但实际上找不到任何东西.

apache-spark apache-spark-sql

6
推荐指数
1
解决办法
1062
查看次数