Вам не нужно использовать .getItem(0)
production_target_datasource_df["Services"][0]
будет достаточно.
# Constructing your table:
from pyspark.sql import Row
df = sc.parallelize([Row(cid=1,Services=["2", "serv1"]),
Row(cid=1, Services=["3", "serv1"]),
Row(cid=1, Services=["4", "serv2"])]).toDF()
df.show()
+---+----------+
|cid| Services|
+---+----------+
| 1|[2, serv1]|
| 1|[3, serv1]|
| 1|[4, serv2]|
+---+----------+
# Adding the two columns:
new_df = df.withColumn("first_element", df.Services[0])
new_df = new_df.withColumn("second_element", df.Services[1])
new_df.show()
+---+----------+-------------+--------------+
|cid| Services|first_element|second_element|
+---+----------+-------------+--------------+
| 1|[2, serv1]| 2| serv1|
| 1|[3, serv1]| 3| serv1|
| 1|[4, serv2]| 4| serv2|
+---+----------+-------------+--------------+