Я создал rdd из файла csv, а первая строка - строка заголовка в этом CSV-файле. Теперь я хочу создать dataframe из этого rdd и сохранить столбец из 1-го элемента rdd.RDD to DataFrame в pyspark (столбцы из первого элемента rdd)
Проблема: я могу создать dataframe и с столбцом из rdd.first(), но созданный dataframe имеет первую строку в качестве самих заголовков. Как удалить это?
lines = sc.textFile('/path/data.csv')
rdd = lines.map(lambda x: x.split('#####')) ###multiple char sep can be there #### or #@# , so can't directly read csv to a dataframe
#rdd: [[u'mailid', u'age', u'address'], [u'satya', u'23', u'Mumbai'], [u'abc', u'27', u'Goa']] ###first element is the header
df = rdd.toDF(rdd.first()) ###retaing te column from rdd.first()
df.show()
#mailid age address
mailid age address ####I don't want this as dataframe data
satya 23 Mumbai
abc 27 Goa
Как избежать того, чтобы первый элемент перемещался к данным dataframe. Могу ли я дать какой-либо вариант в rdd.toDF (rdd.first()), чтобы это сделать?
Примечание: Я не могу собрать RDD, чтобы сформировать список, а затем удалить первый элемент из этого списка, а затем распараллелить этот список обратно, чтобы сформировать RDD, а затем снова toDF() ...
Пожалуйста, предложите !!! Спасибо
почему вы не читали его в формате CSV как DataFrame напрямую? – eliasah
@ eliasah- Spark не может читать файлы с более чем одним символьным разделителем (например, ##### или # @ #), чтобы сформировать dataframe с помощью (spark.read.csv или databricks csv package), и у меня есть такой вид файлы для чтения. – Satya
, так что удалите заголовок перед преобразованием вашего rdd в DF. Плюс в вашем вопросе разделитель - это труба. Так что не угадайте проблему «более одного символа-разделителя» – eliasah