@ Фелипе Авалос
@ Николас Гренье
Предполагая, что вы пытаетесь преобразовать массив строк во фрейм данных с подстроками в качестве соответствующих столбцов, это поможет добиться успеха в pyspark.
Измените column_array, чтобы он содержал массив строк, а column_names содержал имена каждого столбца:
column_array = ["abcdefghijklmnopqrst", "abcdefghijklmnopqrst"]
column_names = ["col1", "col2", "col3", "col4"]
Это преобразует карту в массив rdd со строками и подстроками в качестве значения. Затем rdd преобразуется во фрейм данных с заданными именами столбцов.
sc.parallelize(column_array).map(lambda x: (x, x[0:10], x[11:14],
x[15:17])).toDF(column_names).show()
Это создаст следующий фрейм данных:
+--------------------+----------+----+----+
| col1| col2|col3|col4|
+--------------------+----------+----+----+
|abcdefghijklmnopqrst|abcdefghij| lmn| pq|
|abcdefghijklmnopqrst|abcdefghij| lmn| pq|
+--------------------+----------+----+----+