title: pyspark bitwiseAND vs ampersand operator
body: <p>I am trying to add a column to a dataframe that indicates when two different values are both found in a nested array</p>
  
  <pre><code> expr1 = array_contains(df.child_list, "value1")
   expr2 = array_contains(df.child_list, "value2")
  </code></pre>
  
  <p>I got it to work with an ampersand operator </p>
  
  <pre><code> df.select(...).withColumn("boolTest", expr1 &amp; expr2)
  </code></pre>
  
  <p>Then I tried to replace this with <code>bitwiseAND</code> with the thought being, I would want to have a list of these expressions ANDed together dynamically.</p>
  
  <p>This fails with an error </p>
  
  <pre><code> df.select(...).withColumn("boolTest", expr1.bitwiseAND(expr2))
  
   cannot resolve ..... due to data type mismatch: '(array_contains(c1.`child_list`, 'value1') &amp; 
  array_contains(c1.`child_list`, 'value2'))' requires integral type, 
  not boolean;;
  </code></pre>
  
  <p>What's the distinction and what am I doing wrong?</p>