我需要做两个数据集的记录链接基于等价或相似性的某些字段。例如,假设数据集如下所示(使用一些随机数据):
A:
我怎么用Spark做呢?一个小示例将非常受欢迎,因为internet上没有太多的信息,而且这些信息要么是用Scala编写的,要么是用Python编写的。
UPD:如果有人能用Scala显示--好吧,我也能理解Scala,可能会翻译成Java。
我没有用你的数据测试这段代码,但希望它能工作。关于科特林:
val datasetA: Dataset<Row> = ...
val datasetB: Dataset<Row> = ...
val condition = datasetA.col("BirthDate").equalTo(datasetB.col("BirthDate"))
.and(datasetB.col("FullName").contains(datasetA.col("FirstName")))
.and(datasetB.col("FullName").contains(datasetA.col("LastName")))
.and(datasetB.col("Address").contains(datasetA.col("Street")))
val result = datasetA.join(featuresDF, condition)
我正在寻找一种解决方案,能够在Apache Spark节点上执行代码时记录额外的数据,这有助于调查稍后在执行过程中可能出现的一些问题。尝试使用传统的解决方案,例如失败,因为无法在Apache Spark这样的分布式环境中序列化日志实例。 我已经研究了这个问题,现在我发现的解决方案是使用特性如下: 然而,日志特性似乎不是Apache Spark的永久解决方案,因为它被标记为,并且类留档提到: 这可能
问题内容: 使用pyspark on访问Spark的log4j记录器的正确方法是什么 遗嘱执行人? 在驱动程序中这样做很容易,但我似乎不明白如何访问 executor上的日志记录功能,以便我可以在本地进行日志记录并 纱线收集当地的原木。 有什么方法可以访问本地记录器吗? 标准的日志记录过程是不够的,因为我无法访问spark 执行器的上下文。 问题答案: 不能对执行器使用本地log4j记录器。Pyt
更新:spark avro软件包已更新以支持此场景。https://github.com/databricks/spark-avro/releases/tag/v3.1.0 我有一个AVRO文件,它是由我无法控制的第三方创建的,我需要使用spark进行处理。AVRO模式是一个记录,其中一个字段是混合联合类型: 这是不支持的火花avro阅读器: 除了上面列出的类型之外,它还支持读取三种类型的联合类型
我试图在火花数据帧中显示几个不同列的不同计数,以及对第一列进行分组后的记录计数。 所以如果我有col1、col2和col3,我想按col1分组,然后显示col2的不同计数和col3的不同计数。然后,我想在col1的同一组之后显示记录计数。最后,在一个agg语句中完成这一切…有什么想法吗?
输入数据如下inpu1为{col1:“val1”,col2:“val2”,col3:“val3”,.....}输入2为acctno^^email_id我正在执行左外部联接以联接此2数据集,并给出最后的输出为{col1:“val1”,col2:“val2”,col3:“val3”,col4:email_id}请查找下面我迄今为止所做的代码片段。 但是最终输出有重复的记录,这是不需要的。我想删除重复的
在互联网上研究了这个话题后,我找不到满意的答案,想把这个例子展示给SO社区,看看这是与我们的环境或数据相关的单个一次性案例,还是与Spark相关的更大模式。 Spark 1.6.1 Spark conf:执行器2个,执行存储器32G,执行器核心4个。 数据在一个内部配置单元表中,该表存储为ORC文件类型,用zlib压缩。压缩文件的总大小为2.2GB。