这是在添加列后拍摄的快照,但它不包含一列所有值的总和
我试图在dataframe中添加一列,该列包含同一dataframe中一列的所有值之和。
+------+-------+------+-------------+
|UserID|MovieID|Rating|UnixTimeStamp|
+------+-------+------+-------------+
| 196| 242| 3| 881250949|
| 186| 302| 3| 891717742|
| 22| 377| 1| 878887116|
| 244| 51| 2| 880606923|
| 166| 346| 1| 886397596|
+------+-------+------+-------------+
wa_rating=(rating>3)/总ratings
请帮我找到wa_rating dataframe,它包含一个新列,并使用scala spark
看看这个:
scala> val df = Seq((196,242,3,881250949),(186,302,3,891717742),(22,377,1,878887116),(244,51,2,880606923),(166,346,1,886397596)).toDF("userid","movieid","rating","unixtimestamp")
df: org.apache.spark.sql.DataFrame = [userid: int, movieid: int ... 2 more fields]
scala> df.show(false)
+------+-------+------+-------------+
|userid|movieid|rating|unixtimestamp|
+------+-------+------+-------------+
|196 |242 |3 |881250949 |
|186 |302 |3 |891717742 |
|22 |377 |1 |878887116 |
|244 |51 |2 |880606923 |
|166 |346 |1 |886397596 |
+------+-------+------+-------------+
scala> import org.apache.spark.sql.expressions._
import org.apache.spark.sql.expressions._
scala> val df2 = df.withColumn("total_rating",sum('rating).over())
df2: org.apache.spark.sql.DataFrame = [userid: int, movieid: int ... 3 more fields]
scala> df2.show(false)
19/01/23 08:38:46 WARN window.WindowExec: No Partition Defined for Window operation! Moving all data to a single partition, this can cause serious performance degradation.
+------+-------+------+-------------+------------+
|userid|movieid|rating|unixtimestamp|total_rating|
+------+-------+------+-------------+------------+
|22 |377 |1 |878887116 |10 |
|244 |51 |2 |880606923 |10 |
|166 |346 |1 |886397596 |10 |
|196 |242 |3 |881250949 |10 |
|186 |302 |3 |891717742 |10 |
+------+-------+------+-------------+------------+
scala> df2.withColumn("wa_rating",coalesce( when('rating >= 3,'rating),lit(0))/'total_rating).show(false)
19/01/23 08:47:49 WARN window.WindowExec: No Partition Defined for Window operation! Moving all data to a single partition, this can cause serious performance degradation.
+------+-------+------+-------------+------------+---------+
|userid|movieid|rating|unixtimestamp|total_rating|wa_rating|
+------+-------+------+-------------+------------+---------+
|22 |377 |1 |878887116 |10 |0.0 |
|244 |51 |2 |880606923 |10 |0.0 |
|166 |346 |1 |886397596 |10 |0.0 |
|196 |242 |3 |881250949 |10 |0.3 |
|186 |302 |3 |891717742 |10 |0.3 |
+------+-------+------+-------------+------------+---------+
scala>
问题内容: 我必须按照下面显示的方式创建一个表。我们可以这样创建吗?(如是) 表名称:样本 其中包含多个值的类别归档。 以及我们如何搜索类别4出现在表格的哪一行。 问题答案: 您无法创建嵌套表。而且您想到的并不是设计这样的桌子的好主意。您应该有两个表(如果是category,则恰好三个 表 包含描述)。一个用于,第二个表保存 每个产品 的 类别 。示例设计如下所示, 和填充样本记录 SQLFidd
问题内容: 我在尝试获取另一列中的字符串值的字符计数列时遇到问题,但还没有弄清楚如何有效地做到这一点。 显然,这涉及首先创建一个null列,然后将其重写,这对我的数据集要花费很长时间。那么获得这样的东西最有效的方法是什么 我已经检查了很多,但是还无法弄清楚。 问题答案: Pandas为此使用了矢量化字符串方法:。要创建新列,您可以编写: 例如: 这应该比使用Python循环在DataFrame上循
在PostgreSQL中,我想使用SQL语句合并两列并从中创建一个新列。 我正在考虑使用concat(…) ,但有更好的方法吗<最好的方法是什么?
假设我有一个pyspark数据帧: 我想添加一个名为的列,它计算大于0的值的数量。 最终输出将是: 我正在尝试这个。但是,它没有帮助,错误如下: 参数无效,不是字符串或列:
我想将熊猫数据框中的所有列连接起来,用空格分隔 (" ").有没有比df['新栏目']=df['a'] " " df['b']"...
如何使用Alembic或SQLAlchemy将一列接一列地添加到数据库中?这相当于SQL子句: 我也在邮件列表中尝试了这个建议,但没用。 虽然在查询时顺序无关紧要,但在SQL shell中,它有助于提高大型表的可读性。