title: Pyspark : Pass dynamic Column in UDF
body: <p>Trying to send list of column one by one in UDF using for loop but getting error i.e Data frame not find col_name. currently in list list_col we have two column but it can be change .So i want to write a code which work for every list of column.In this code i am concatenating one row of column at a time and row value is in struct format i.e list inside a list . For every null i have to give space . </p>
  
  <pre><code>    list_col=['pcxreport','crosslinediscount']
      def struct_generater12(row):
      list3 = []
      main_str = ''
      if(row is None):
          list3.append(' ')
      else:
          for i in row:
              temp = ''
              if(i is None):
                  temp+= ' '
              else:
                  for j in i:
                      if (j is None):
                          temp+= ' '
                      else:
                          temp+= str(j)
              list3.append(temp)
      for k in list3:
          main_str +=k
      return main_str
  
  
      A = udf(struct_generater12,returnType=StringType())
      # z = addlinterestdetail_FDF1.withColumn("Concated_pcxreport",A(addlinterestdetail_FDF1.pcxreport))
      for i in range(0,len(list_col)-1):
          struct_col='Concate_'
          struct_col+=list_col[i]
          col_name=list_col[i]
          z = addlinterestdetail_FDF1.withColumn(struct_col,A(addlinterestdetail_FDF1.col_name))
          struct_col=''
  
      z.show()
  </code></pre>