Как удалить первый ряд из файла паркета? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть файл партера, который содержит два столбца (идентификатор, функция). Файл состоит из 14348 строк. файл Как мне удалить первый идентификатор строки, функцию из файла

код

val df = spark.read.format("parquet").load("file:///usr/local/spark/dataset/model/data/user/part-r-00000-7d55ba81-5761-4e36-b488-7e6214df2a68.snappy.parquet")
val header = df.first() 
val data   = df.filter(row => row != header) 
data .show()

результат выглядит как вывод

Ответы [ 3 ]

0 голосов
/ 31 октября 2019

Я использую Spark 2.4.0, и вы могли бы использовать опцию заголовка для вызова DataFrameReader, например:

spark.read.format("csv").option("header", true).load(<path_to_file>)

Ссылкадля других вариантов DataFrameReader здесь здесь

0 голосов
/ 31 октября 2019

Вам нужно отбросить первую строку на основе идентификатора, если вы это знаете, иначе перейдите к подходу индексации, т. Е. Присвойте номер строки и удалите первую строку.

0 голосов
/ 30 октября 2019

Если вы пытаетесь «игнорировать» схему, определенную в файле, это неявно делается после того, как вы прочитаете свой файл, используя искра, например:

spark.read.format("parquet").load(your_file)

Если вы пытаетесь пропустить только первыйстрока на вашем DF, и если вы уже знаете id, вы можете сделать: val filteredDF = originalDF.filter(s"id != '${excludeID}' "). Если вы не знаете идентификатор, вы можете использовать monotonically_increasing_id, чтобы пометить его, а затем отфильтровать, например: фильтровать искровой фрейм данных на основе максимального значения столбца

...