小编Zen*_*Zed的帖子

为什么Scala 2.11.2给出了科学计数法中浮点数的编译错误?

我刚刚将Scala项目从2.10更新到2.11.2.

对于以下代码:

 if( x < 1.e-150 ) // conditional ops... 
Run Code Online (Sandbox Code Playgroud)

我收到了错误

e不是Int的成员

以前的科学概念已经奏效了.我怀疑这不是2.11的事情,但更可能是升级的一些奇怪,这在很大程度上只是更新sbt文件的情况:

scalaVersion := "2.11.2"
Run Code Online (Sandbox Code Playgroud)

之前的地方:

scalaVersion := "2.10.3"
Run Code Online (Sandbox Code Playgroud)

我想不出可能导致这种情况的原因.我所知道的是它在2.10下工作正常.

有没有人见过这个问题或者可以建议修复?(或新的询问线!)

我正在使用JDK 1.7.0_21和sbt.version=0.13.5.

任何帮助或想法赞赏.

scala sbt scala-2.11

10
推荐指数
1
解决办法
314
查看次数

无法将有序数据写入火花中的镶木地板

我正在使用 Apache Spark 生成镶木地板文件。我可以毫无问题地按日期对它们进行分区,但在内部我似乎无法按正确的顺序排列数据。

订单似乎在处理过程中丢失了,这意味着镶木地板元数据不正确(特别是我想确保镶木地板行组反映排序顺序,以便特定于我的用例的查询可以通过元数据进行有效过滤)。

考虑以下示例:

// note: hbase source is a registered temp table generated from hbase
val transformed = sqlContext.sql(s"SELECT  id, sampleTime, ... , toDate(sampleTime) as date FROM hbaseSource")

// Repartion the input set by the date column (in my source there should be 2 distinct dates)
val sorted = transformed.repartition($"date").sortWithinPartitions("id", "sampleTime")

sorted.coalesce(1).write.partitionBy("date").parquet(s"/outputFiles")
Run Code Online (Sandbox Code Playgroud)

通过这种方法,我确实得到了正确的镶木地板分区结构(按日期)。更好的是,对于每个日期分区,我看到一个大的镶木地板文件。

 /outputFiles/date=2018-01-01/part-00000-4f14286c-6e2c-464a-bd96-612178868263.snappy.parquet
Run Code Online (Sandbox Code Playgroud)

但是,当我查询文件时,我看到内容乱序。具体来说,“乱序”似乎更像是几个有序的数据帧分区已合并到文件中。

Parquet 行组元数据显示排序的字段实际上是重叠的(例如,特定 id 可以位于许多行组中):

id:             :[min: 54, max: 65012, num_nulls: 0]
sampleTime:     :[min: 1514764810000000, max: 1514851190000000, num_nulls: 0]
id:             :[min: 827, max: …
Run Code Online (Sandbox Code Playgroud)

sorting scala apache-spark parquet

6
推荐指数
2
解决办法
2824
查看次数

标签 统计

scala ×2

apache-spark ×1

parquet ×1

sbt ×1

scala-2.11 ×1

sorting ×1