我有一个固定列数的数据帧df1。我已将内连接应用于另一个数据帧df2。
然而,在写入选择时,我需要选择一些我目前无法使用的常数。
我已经阅读了scala中的示例,但相应的java无效。
df1.join(df2).filter(df1.col("a1").$eq$eq$eq(df2.col("a1")))
.select(df1.col("a1"), df1.col("a2"), df2.col("a2"), 8)
建议选择8的方法,如上例所示。
我也知道withColumn
api但不确定实现。
感谢。
答案 0 :(得分:6)
这应该有用。
val joinedDF = df1.join(df2).filter(df1.col("a1").$eq$eq$eq(df2.col("a1")))
.select(df1.col("a1"), df1.col("a2"), df2.col("a2")).withColumn("constant", lit(8))
即如果要添加整数。如果要添加常量字符串,请在选择
后使用.withColumn("constantString",lit("some_string"))
答案 1 :(得分:2)
如何使用纯SQL执行此任务?
df1.registerAsTempTable("df1");
df2.registerAsTempTable("df2");
val joinedDf = hc.sql("Select df1.a1, df1.a2, df2.a2, 8 from df1 inner join df2 on df1.a1 = df2.a1");