apache-spark-dataset相关内容

Spark:数据集序列化

如果我有一个数据集,每个记录的每个记录都是一个案例类,那么我按如下所示保存该数据集,以便使用序列化: myDS.persist(StorageLevel.MERORY_ONLY_SER) Spark是否使用Java/kyro序列化序列化数据集?还是像数据框一样,Spark有其自己的方式将数据存储在数据集中? 解决方案 Spark Dataset 不使用标准的序列化器.相反,它使用 ..

Scala Spark DataFrame用udf返回值修改列

我有一个带有时间戳字段的spark数据框,我想将其转换为long数据类型。我使用了UDF,但独立代码可以正常工作,但是当我插入需要转换任何时间戳的通用逻辑时,它就无法正常工作。问题是如何将UDF的返回值返回到数据帧列 下面是代码段 val spark:SparkSession = SparkSession.builder()。master(“ local [*]”)。appName( ..

Spark正在交换已经正确分配的分区

我按两列加入2个数据集,结果是包含550亿行的数据集。之后,我必须在该DS上按与联接中使用的列不同的列进行一些聚合。 问题是,尽管聚集列是唯一的,但数据已经正确分配,但Spark在加入后进行交换分区(花费太多时间处理550亿行)。我知道聚合密钥已正确分发,是否有办法告知Spark应用程序? 解决方案 1)转到Spark UI并检查“位置级别” 2)如果要联接大数据和小数据,请使用b ..

如何读取".gz"使用Spark DF或DS压缩文件?

我有一个.gz格式的压缩文件,是否可以使用spark DF/DS直接读取该文件? 详细信息:文件为带有制表符分隔的csv. 解决方案 读取压缩的csv的方式与读取未压缩的csv文件的方式相同.对于Spark版本2.0+,可以使用Scala通过以下方式完成操作(请注意制表符分隔符的额外选项): val df = spark.read.option("sep", "\t").csv ..

Spark 2.0数据集groupByKey并对操作和类型安全进行划分

我对Spark 2.0数据集感到非常满意,因为它具有编译时类型安全性.但是这里有几个我无法解决的问题,我也没有为此找到好的文档. 问题1-对汇总列进行除法运算- 考虑下面的代码- 我有一个DataSet [MyCaseClass],我想在c1,c2,c3和sum(c4)/8上使用groupByKey.下面的代码可以很好地工作,如果我只是计算总和,但它会给出除法(8)的编译时错误.我不知道如何 ..

我是否必须显式使用Dataframe的方法来利用Dataset的优化?

要利用Dataset的优化,我是否必须显式使用Dataframe's方法(例如df.select(col("name"), col("age")等)或调用 any 方法- 甚至是类似RDD的方法 (例如filter,map等)是否也可以进行优化? 解决方案 数据帧优化通常分为3种: 钨记忆管理 催化剂查询优化 整个阶段的代码生成器 钨记忆管理 在定义RDD [mycl ..

在窗口操作之后,使用Spark Scala为数据中的每个组选择最新的时间戳记记录

我在一天的时间范围内(86400)对(user,app)的尝试次数进行了计数.我想提取具有最新时间戳和计数的行,并删除不必要的先前计数.确保您的答案考虑了时间范围.一个拥有1台设备的用户每天或每周可以进行多次尝试,我想能够在每个特定窗口中检索带有最终计数的特定时刻. 我的初始数据集是这样的: val df = sc.parallelize(Seq( ("user1", "iphon ..

Apache Spark中的Jaro-Winkler分数计算

我们需要在Apache Spark 数据集中跨字符串实现Jaro-Winkler距离计算.我们是新兴的,在网络上搜索之后,我们找不到很多东西.如果您能指导我们,那就太好了.我们考虑使用 flatMap ,然后意识到这无济于事,然后我们尝试使用几个foreach循环,但无法弄清楚如何进行.因为每个字符串都必须与所有字符串进行比较.就像下面的数据集一样. RowFactory.create(0, ..