如何从实木复合地板文件中删除第一行?

时间:2019-10-30 19:09:17

标签: scala apache-spark parquet

我有一个实木复合地板文件,其中包含两列(id,功能)。该文件包含14348行。file 我如何从文件中删除第一行ID,功能

代码

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()

结果似乎为output

3 个答案:

答案 0 :(得分:0)

如果您试图“忽略”文件中定义的架构,则在读取文件后会隐式完成,例如:

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

如果您仅尝试跳过DF的第一行,并且如果您已经知道id,则可以执行:val filteredDF = originalDF.filter(s"id != '${excludeID}' ")。如果您不知道ID,可以使用monotonically_increasing_id对其进行标记,然后进行过滤,例如:filter spark dataframe based on maximum value of a column

答案 1 :(得分:0)

如果您知道这一点,则需要根据id删除第一行,否则请采用索引方法,即分配行号并删除第一行。

答案 2 :(得分:-1)

我使用的是Spark if (glfwInit() == 0) { std::cout << "GLFW init failed\n"; glfwTerminate(); } ,您可以像这样使用 header选项进行2.4.0通话-

DataFrameReader

spark.read.format("csv").option("header", true).load(<path_to_file>)的其他选项的引用为here