code: def substring(str, pos, len):
      
      sc = SparkContext._active_spark_context
      return Column(sc._jvm.functions.substring(_to_java_column(str), pos, len))
docs: Substring starts at `pos` and is of length `len` when str is String type or
      returns the slice of byte array that starts at `pos` in byte and is of length `len`
      when str is Binary type.
  
      .. note:: The position is not zero based, but 1 based index.
  
      >>> df = spark.createDataFrame([('abcd',)], ['s',])
      >>> df.select(substring(df.s, 1, 2).alias('s')).collect()
      [Row(s=u'ab')]