Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 使用另外两个DF创建一个新DF_Scala_Apache Spark - Fatal编程技术网

Scala 使用另外两个DF创建一个新DF

Scala 使用另外两个DF创建一个新DF,scala,apache-spark,Scala,Apache Spark,我有两个数据帧共享列颜色,我想创建一个新列,代码对应于新DF中的列颜色,如您所见: DF1 +------------+--------------------+ | Code | colour | +------------+--------------------+ | 1001 | brown | | 1201 | black | | 1300 | gree

我有两个数据帧共享列颜色,我想创建一个新列,代码对应于新DF中的列颜色,如您所见:

DF1
+------------+--------------------+
|    Code    |      colour        |
+------------+--------------------+
|     1001   |      brown         |
|     1201   |      black         |
|     1300   |      green         |
+------------+--------------------+

DF2
+------------+--------------------+-----------+
|    Name    |      colour        |    date   |
+------------+--------------------+-----------+
|     Joee   |      brown         |  20210101 |
|     Jess   |      black         |  20210101 |
|     James  |      green         |  20210101 |
+------------+--------------------+-----------+

Output:
+------------+--------------------+-----------+----------+
|    Name    |      colour        |    date   |   Got    |
+------------+--------------------+-----------+----------+
|     Joee   |      black         |  20210101 |  1201    |
|     Jess   |      brown         |  20210101 |  1001    |
|     James  |      blue          |  20210101 |   092    |
+------------+--------------------+-----------+----------+
我该怎么做?使用建议的join?

,通过明确指定两个数据帧之间
color
列的值相等,一个简单的SQL
join
就足够了,如下所示(我们删除两个
color
列中的一个,因为它们在join后的每一行具有相同的值):

这是我们在
显示
对新形成的
连接的
数据帧进行加密后得到的结果:

+----+-----+------+--------+
|code| name|colour|    date|
+----+-----+------+--------+
|1001|  Joe| brown|20210101|
|1201| Jess| black|20210101|
|1300|James| green|20210101|
+----+-----+------+--------+

只需在颜色栏上简单连接即可。你试过什么?df1.join(df2,Seq($“color”),“inner”)这是我正在做的,但我总是得到一个空的DF:|对我不起作用,没有其他方法吗?从控制台给你的输出是什么?您当前使用的Spark版本是什么?也许两个数据帧中的另一个(更准确的)数据样本可以帮助找出错误。列“color”包含一个大字符串,它在两个DF中都存在,但这可能是一个问题吗?由于要加入的列是一个大字符串,请使用两个数据帧的实际内容编辑问题的文本,以便更清楚地了解解决此问题需要做什么。
+----+-----+------+--------+
|code| name|colour|    date|
+----+-----+------+--------+
|1001|  Joe| brown|20210101|
|1201| Jess| black|20210101|
|1300|James| green|20210101|
+----+-----+------+--------+