python - 使用 pyspark 会话从本地文件读取时如何跳过一些行?
问题描述
我正在使用 pyspark 从本地.plt
文件中读取和处理一些数据。这是文件的样子:
Geolife trajectory
WGS 84
Altitude is in Feet
Reserved 3
0,2,255,My Track,0,0,2,8421376
0
39.984094,116.319236,0,492,39744.2451967593,2008-10-23,05:53:05
39.984198,116.319322,0,492,39744.2452083333,2008-10-23,05:53:06
39.984224,116.319402,0,492,39744.2452662037,2008-10-23,05:53:11
39.984211,116.319389,0,492,39744.2453240741,2008-10-23,05:53:16
......
如上所示,我对开始的 6 行不感兴趣,我想要的是从第 7 行开始的行。所以我想使用 spark session 从第 7 行读取这个文件。这是我尝试过但失败的代码:
from pyspark.sql import SparkSession
session = SparkSession.builder.appName('file reader').master('local[*]').getOrCreate()
df = session.read.\
option('delimiter', ',').\
option('header', 'false').\
csv('test.plt')
df.show()
有人可以给我一些建议吗?感谢您的关注。
解决方案
from pyspark.sql.types import *
from pyspark.sql import SparkSession
session = SparkSession.builder.appName('file reader').master('local[*]').getOrCreate()
schema = StructType([StructField("a", FloatType()),
StructField("b", FloatType()),
StructField("c", IntegerType()),
StructField("d", IntegerType()),
StructField("e", FloatType()),
StructField("f", StringType()),
StructField("g", StringType())])
df=session.read.option('mode','DROPMALFORMED').csv('test.plt',schema)
推荐阅读
- reactjs - React setstate 会破坏 Redux 对象吗?
- python-3.x - PPTK,设置相机位置
- sql - 在 Label SQL 中添加点表示法
- php - Carbon 中的 ISO 8601 解析验证
- javascript - 从特定位置替换字符串直到结束Javascript
- javascript - 情感/风格 - 悬停在 SVG 组件上
- c++ - c++中奇怪的语法是什么意思
- python - 如何验证python中的单词?
- security - 带有 TLS 客户端身份验证的 nginx... 错误响应未经过相互身份验证?
- html - 如何使用网格布局实现粘性位置