我想将制表符分隔的文本文件读入Breeze DenseMatrix.我在ScalaDoc中看到这应该是可能的,并且有一整套I/O类,但我找不到任何示例,并且很难消化ScalaDoc.
有人可以提供简单的读/写示例吗?
我有数据,我想做很多分析查询,我想弄清楚是否有一个机制,我可以用来存储它,以便Spark可以有效地对它进行连接.我有一个使用RedShift的解决方案,但理想情况下更喜欢在S3中使用基于文件的内容,而不是全天候提供整个RedShift群集.
这是一个简化的例子.我们有2个初始CSV文件.
这两个表通过person_id字段链接.person_id在Person表中是唯一的.事件与人有多对一的关系.
我想了解如何设置数据,以便我可以有效地执行以下查询.我需要执行这样的许多查询(所有查询都是基于每个人进行评估):
查询是生成一个包含4列的数据框,每个人都有1行.
我在解决这个问题时使用Spark的所有当前解决方案都涉及重新调整所有数据,最终导致大量(数亿人)的流程变慢.我很高兴有一个解决方案,要求我重新整理数据并将其写入不同的格式,如果这样可以加快以后的查询速度.
我可以使用RedShift以相当简单的方式完成此解决方案:
每个文件都作为RedShift表加载,使用DISTKEY person_id,SORTKEY person_id.这会分发数据,以便人员的所有数据都在一个节点上.以下查询将生成所需的数据框:
select person_id, age, e.cost from person
left join (select person_id, sum(cost) as cost from events
where date between '2013-06-01' and '2013-06-30'
group by person_id) as e using (person_id)
Run Code Online (Sandbox Code Playgroud)
我已经想到了几种在Spark中处理这个问题的潜在方法,但是没有一种能够实现我的需求.我的想法和问题如下:
对于我的用例,Spark优于RedShift,这在这个简单的例子中并不明显,所以我更喜欢用Spark做这个.如果我遗漏了一些东西并且有一个很好的方法,请告诉我.
amazon-redshift apache-spark apache-spark-sql spark-dataframe
我使用免费的MongoLab,我的数据库在周末升级到Mongo 3,现在我的客户端无法连接.我一直收到'未经授权的db.collection查询'.错误.
Mongolab说我应该使用Mongo 3兼容驱动程序(http://docs.mongodb.org/manual/release-notes/3.0-compatibility/#driver-compatibility-changes).我正在使用scala ReactiveMongo客户端,版本0.11.7,它应该支持Mongo 3.
我正在尝试使用Java编写Avro序列化文件,然后在Windows上使用Python读取它.我能够使用Java写出Avro文件,但是当我尝试使用Python读取它时,我得到一个错误"ord()期望一个字符,但找到长度为0的字符串"
文件不完整或不刷新不是错误,因为我可以完全通过Java读取文件并且读取正常.
我的python设置不是一个基本错误,因为我可以在Avro入门页面上运行示例序列化/反序列化:http://avro.apache.org/docs/current/gettingstartedpython.html
任何想法可能是什么.
我有一些Scala代码用于库,我为JVM和ScalaJS编译.
现在我有一个"纯"项目,在js和jvm项目中没有特殊代码,我想保持这种方式,因为intellij集成和其他一些因素.
但是,我确实需要根据我是在JVM还是JS中来改变一小段代码(1-2行).我想要一个简单的方法来实现这一点,这不需要我改变我的整个项目结构.
基本上我想要一个调用"isJS",如果我使用JavaScript则返回true,否则返回false.
我正在使用Spark 2.0.2.我有一个在其上有别名的DataFrame,我希望能够检索它.我想要的简化示例如下.
def check(ds: DataFrame) = {
assert(ds.count > 0, s"${df.getAlias} has zero rows!")
}
Run Code Online (Sandbox Code Playgroud)
上面的代码当然失败了,因为DataFrame没有getAlias函数.有没有办法做到这一点?