在两个DataFrame上迭代布尔比较?

时间:2019-06-17 00:57:52

标签: scala apache-spark

我创建了两个DF集,一个带有通用编号列表,另一个带有特定编号列表。我想遍历第一个列表并将其与第二个列表进行比较;如果GenericList [X]等于SpecificNumber列表中的任何数字,我希望返回True,否则返回False。

我试图利用if循环,类似于...(...

)的for(num <-List)print(list)。
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Spreadsheet</title>
    <style>

      td {
        text-align: right;
        width: 33%;
      }
      td, th, table {
        border: 1px solid;
        border-collapse: collapse;
      }
      th {
        text-align: left;
      }
    </style>
  </head>
  <body>
    <table>  
      <thead>
        <caption>Purchase Orders</caption>
      </thead>
      <tbody>
        <tr>
          <th>Order Date</th>
          <th>SKU</th>
          <th>Quantity</th>
        </tr>
        <tr>
          <td>07-16-2018</td>
          <td>523402</td>
          <td>54</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

1 个答案:

答案 0 :(得分:4)

尝试使用 .exists .contains 功能检查电话号码。

scala> val genericList = List(5,6,7,8,9,10)
scala> val specificList = List(5,-3,8)
scala> genericList.exists(specificList.contains)
res1: Boolean = true

In Dataframe API:

scala> val genericList = List(5,6,7,8,9,10)
scala> val df = genericList.toDF
scala> val specificList = List(5,-3,8)
scala> df.withColumn("check",'value.isin(specificList:_*)).show()
+-----+-----+
|value|check|
+-----+-----+
|    5| true|
|    6|false|
|    7|false|
|    8| true|
|    9|false|
|   10|false|
+-----+-----+