我有一个如下的数据框。我需要在现有列的基础上创建一个新列。
col1 col2
a 1
a 2
b 1
c 1
d 1
d 2
输出数据帧看起来像这样
col1 col2 col3 col4
a 1 1 2
a 2 1 2
b 1 0 1
c 1 0 1
d 1 1 2
d 2 1 2
我用来寻找col3的逻辑是如果col1计数
我熟悉如何在sql中实现这一点。但很难找到数据帧DSL的解决方案。任何帮助都将不胜感激。谢谢
要添加col3,您可以在以下情况下使用withcolumn:
val df2 = df.withColumn("col3",when($"col2" > 1, 1).otherwise(0))
要添加col4,前面提到的groupBy/max join应该完成以下工作:
val df3 = df2.join(df.groupBy("col1").max("col2"), "col1")
Sparkdf有一个属性,名为与列。您可以根据需要添加任意多的派生列。但是该列没有添加到现有的DF中,而是创建了一个添加了列的新DF。
向数据添加静态日期
val myFormattedData = myData.withColumn("batchdate",addBatchDate(myData("batchdate")))
val addBatchDate = udf { (BatchDate: String) => "20160101" }
groupBy col1和aggregate得到count和max。然后你可以把它和原始数据帧连接起来,得到你想要的结果
val df2 = df1.groupBy("col1").agg(count() as col3, max("col2") as col4)
val df3 = df1.join(df2, "col1")
大家好,我想在数据帧的每一行中使用现有列添加新列,我正在Spark Scala中尝试这样做。。。df是包含可变列数的数据帧,只能在运行时确定。 但这个错误是eclipse本身 无法找到存储在数据集中的类型的编码器。通过导入spark.implicits.支持原始类型(Int,String等)和产品类型(case类)_将在未来版本中添加对其他类型序列化的支持。 方法映射没有足够的参数:(隐式证据7美
这两个表是: > < li> 学生(学生标识,学生姓名); score (student_id,subject,score1,score2)。 我想在student表中添加一个新列来查找每个学生所有科目的平均分。我该怎么做呢?
本文向大家介绍向Pandas中的现有DataFrame添加新列,包括了向Pandas中的现有DataFrame添加新列的使用技巧和注意事项,需要的朋友参考一下 Pandas 数据框是一种二维数据结构,即,数据以表格的形式在行和列中对齐。可以使用python dict,list和series等创建它。在本文中,我们将看到如何在现有数据框中添加新列。因此,首先让我们使用pandas系列创建一个数据框。
问题内容: 我不知道如何使用Laravel框架向现有数据库表添加新列。 我试图使用…来编辑迁移文件。 在终端中,我执行和。 如何添加新列? 问题答案: 要创建迁移,您可以在Artisan CLI上使用migration:make命令。使用特定名称以避免与现有模型冲突 对于Laravel 3: 对于Laravel 5+: 然后,您需要使用该方法(在访问现有表而不是创建新表时)。您可以添加如下所示的列
Spark-Scala环境中的函数有一些问题。我想在我的DataFrame中添加一个新列,如下所示: 变成: 但是Spark返回给我这个错误: 你能帮我吗?非常感谢!