小编hey*_*you的帖子

List.view 和 LazyList 有什么区别?

我是 Scala 的新手,我刚刚了解到它LazyList是为了替换而创建的Stream,同时他们将.view方法添加到所有集合中。

所以,我想知道为什么被LazyList添加到 Scala 集合库中,我们什么时候可以做List.view

我刚刚看了 Scaladoc,似乎唯一的区别是LazyList有记忆,而View没有。我是对还是错?

scala lazy-evaluation scala-collections

7
推荐指数
2
解决办法
697
查看次数

如何通过spark插入HDFS?

我已经在HDFS中对数据进行了分区。在某个时候,我决定对其进行更新。该算法是:

  • 从kafka主题中读取新数据。
  • 找出新数据的分区名称。
  • 从具有HDFS中这些名称的分区中加载数据。
  • 将HDFS数据与新数据合并。
  • 覆盖磁盘上已经存在的分区。

问题是,如果新数据具有磁盘上尚不存在的分区,该怎么办。在这种情况下,它们不会被写入。/sf/answers/3478406991/ <-例如,此解决方案不编写新分区。 在此处输入图片说明

上图描述了这种情况。让我们将左磁盘视为已经存在于HDFS中的分区,并将右磁盘视为刚刚从Kafka收到的分区。

正确磁盘的某些分区将与现有分区相交,而其他分区则不会。这段代码:

spark.conf.set("spark.sql.sources.partitionOverwriteMode","dynamic")
dataFrame
    .write
    .mode(SaveMode.Overwrite)
    .partitionBy("date", "key")
    .option("header", "true")
    .format(format)
    .save(path)
Run Code Online (Sandbox Code Playgroud)

无法将图片的蓝色部分写入磁盘。

那么,如何解决此问题?请提供代码。我正在寻找表演者。

那些不懂的人的例子:

假设我们在HDFS中有以下数据:

  • 分区A的数据为“ 1”
  • 分区B的数据为“ 1”

现在,我们收到以下新数据:

  • 分区B的数据为“ 2”
  • PartitionC的数据为“ 1”

因此,分区A和B在HDFS中,分区B和C是新分区,并且由于B在HDFS中,因此我们对其进行了更新。而且我想编写C。因此,最终结果应如下所示:

  • 分区A的数据为“ 1”
  • 分区B的数据为“ 2”
  • PartitionC的数据为“ 1”

但是,如果我使用上面的代码,则会得到以下信息:

  • 分区A的数据为“ 1”
  • 分区B的数据为“ 2”

因为overwrite dynamicspark 2.3 的新功能无法创建PartitionC。

更新:事实证明,如果您改为使用配置单元表,则可以使用。但是,如果您使用纯Spark,则不会...因此,我猜蜂巢的覆盖和Spark的覆盖工作有所不同。

bigdata hdfs apache-spark apache-spark-sql

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

shuffle hash join 和 sort merge join 到底是如何工作的?

我可以解释广播连接的工作原理,这篇文章很好地解释了它:https ://jaceklaskowski.gitbooks.io/mastering-spark-sql/spark-sql-joins-broadcast.html

但我未能找到一篇文章来解释 shuffle hash join 和 sort merge join 的内部工作原理。

谁能给出这两个的分步算法吗?

apache-spark

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

如何修复“文件只能复制到 0 个节点而不是 minReplication (=1)。”?

不久前我问了一个类似的问题,并以为我解决了这个问题,但结果它消失了,因为我正在处理一个较小的数据集。

许多人问过这个问题,我浏览了我能找到的每一个互联网帖子,但仍然没有取得任何进展。

我想要做的是:我browserdata在 hive 中有一个外部表,它指的是大约 1 GB 的数据。我尝试将该数据粘贴到分区表中partbrowserdata,其定义如下:

CREATE EXTERNAL TABLE IF NOT EXISTS partbrowserdata (                                                                                                                                                              
    BidID string,                                                                                                                                                                                                  
    Timestamp_ string,                                                                                                                                                                                             
    iPinYouID string,                                                                                                                                                                                              
    UserAgent string,                                                                                                                                                                                              
    IP string,                                                                                                                                                                                                     
    RegionID int,                                                                                                                                                                                                  
    AdExchange int,                                                                                                                                                                                                
    Domain string,                                                                                                                                                                                                 
    URL string,                                                                                                                                                                                                    
    AnonymousURL string,                                                                                                                                                                                           
    AdSlotID string,                                                                                                                                                                                               
    AdSlotWidth int,                                                                                                                                                                                               
    AdSlotHeight int,                                                                                                                                                                                              
    AdSlotVisibility string,                                                                                                                                                                                       
    AdSlotFormat string,                                                                                                                                                                                           
    AdSlotFloorPrice decimal,                                                                                                                                                                                      
    CreativeID string,                                                                                                                                                                                             
    BiddingPrice decimal,                                                                                                                                                                                          
    AdvertiserID string,                                                                                                                                                                                           
    UserProfileIDs array<string>                                                                                                                                                                                   
)                                                                                                                                                                                                                  
PARTITIONED BY (CityID int)                                                                                                                                                                                        
ROW FORMAT DELIMITED                                                                                                                                                                                               
FIELDS TERMINATED BY '\t'                                                                                                                                                                                          
STORED AS TEXTFILE                                                                                                                                                                                                 
LOCATION '/user/maria_dev/data2';
Run Code Online (Sandbox Code Playgroud)

使用此查询:

insert …
Run Code Online (Sandbox Code Playgroud)

hadoop hive hdfs cloudera hadoop-yarn

5
推荐指数
1
解决办法
1297
查看次数

Glue 使用 S3 还是 HDFS?

我将文件存储在 S3 中并使用 AWS Glue 处理它们。采用无服务器技术,它会在后台启动 Hadoop 集群,而您无需进行管理。

当我处理 S3 中的数据集时,Glue 是否会将其加载到集群的 HDFS 中而不是启动?或者它直接在 S3 上处理所有内容?

我想知道这个,因为我想知道我是否应该在 S3 中正确分区我的数据集,如果 Glue 将所有数据下载到 HDFS,那么我可以在运行 Glue 作业时重新分区它,但如果它没有加载它进入HDFS,我想我必须保持它的分区。

amazon-web-services apache-spark aws-glue

5
推荐指数
0
解决办法
965
查看次数

为什么在 Haskell 中另外定义为 True?

我刚刚发现 Haskell 中的守卫方程,这是一个例子:

abs n | n >= 0 = n
      | otherwise = -n
Run Code Online (Sandbox Code Playgroud)

它基本上表示函数abs返回nif n >= 0,否则返回-n

书中说标准前奏的定义是这样的:otherwise = True,为什么呢?

haskell

4
推荐指数
2
解决办法
350
查看次数

为什么kafka Producer有client.id?

生产者如何使用 client.id?我的理解是,kafka消费者需要 client.id 才能将其与偏移量关联起来。例如,应用程序可以使用“abc123”client.id 从主题读取,如果失败,可以使用相同的 client.id 重新启动并从中断处继续读取。

另一方面,我的理解是制作人总是写到主题的末尾。那么,为什么 kafka 生产者需要 client.id 呢?

apache-kafka kafka-consumer-api kafka-producer-api

4
推荐指数
1
解决办法
3084
查看次数

如何关闭并行流中使用的本地autocloseable线程?

我有一个ThreadLocal变量.我想像这样使用它:

ThreadLocal<AutoCloseable> threadLocal = new ThreadLocal<AutoCloseable>(); // pseudocode
ForkJoinPool fj = new ForkJoinPool(nThreads);
fj.submit(
    () -> myStream.parallel().forEach(e -> {
        /*I want to use the thread local autocloseable here, 
          but how do I close it when this parallel processing is done?*/
    })
);
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

3
推荐指数
1
解决办法
364
查看次数

我如何使用 java 8 的流从 Scala 2.11 收集?

我有这段代码:

import java.util.stream._
import java.util.function._

final case class AbcTest(value: String)

def funToFunction[InT, OutT](fun: InT => OutT): Function[InT, OutT] = new Function[InT, OutT] {
  override def apply(t: InT): OutT = fun(t)
}

def main(args: Array[String]): Unit = {
  Stream.of("a", "b", "c")
    .map[AbcTest](funToFunction((v: String) => AbcTest(v)))
    .collect(Collectors.toList())
}
Run Code Online (Sandbox Code Playgroud)

它失败并显示此错误消息:

    Error:(43, 27) type mismatch;
 found   : java.util.stream.Collector[Nothing,?0(in method main),java.util.List[Nothing]] where type ?0(in method main)
 required: java.util.stream.Collector[_ >: test.AbcTest, ?, ?]
Note: Nothing <: Any, but Java-defined trait Collector is invariant in type T. …
Run Code Online (Sandbox Code Playgroud)

generics scala

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

谓词下推到底是如何工作的?

谁能用例子解释一下谓​​词下推到底是如何工作的?

hadoop parquet orc

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