开发者社区> 问答> 正文

pyflink读取csv源表时,如何跳过标题行?如何选取特定的列?

尊敬的开发者您好, 我读取csv数据的源代码如下: t_env.register_table_source("mySource",                                CsvTableSource(r'data\trip\yellow_tripdata_2014-01.csv',                                ['vendor_id', 'pickup_datetime', 'dropoff_datetime', 'passenger_count',                                 'trip_distance', 'pickup_longitude', 'pickup_latitude', 'rate_code',                                 'store_and_fwd_flag', 'dropoff_longitude', 'dropoff_latitude',                                 'payment_type', 'fare_amount', 'surcharge', 'mta_tax', 'tip_amount',                                 'tolls_amount', 'total_amount'],                                                                   [DataTypes.STRING(), DataTypes.STRING(), DataTypes.STRING(), DataTypes.BIGINT(),                                 DataTypes.FLOAT(), DataTypes.FLOAT(), DataTypes.FLOAT(), DataTypes.BIGINT(),                                 DataTypes.STRING(), DataTypes.FLOAT(), DataTypes.FLOAT(),                                 DataTypes.STRING(), DataTypes.FLOAT(), DataTypes.FLOAT(), DataTypes.FLOAT(), DataTypes.FLOAT(),                                 DataTypes.FLOAT(), DataTypes.FLOAT()]) ) 我这里使用的CsvTableSource的方法,该如何跳过原数据中的标题行呢?同时我只想读取'pickup_longitude', 'pickup_latitude','dropoff_longitude', 'dropoff_latitude'这四列,该如何操作? 该种方法与 connect的OldCsv和Schema方法有什么区别?如果使用connect的方法应该怎样跳过标题行,并选取特定的列呢? 还是说只能在保存原数据表的时候去掉标题行? 期待您的解答。*来自志愿者整理的flink

展开
收起
毛毛虫雨 2021-12-05 21:39:04 898 0
1 条回答
写回答
取消 提交回答
  • Hi, 1. CsvTableSource的构造方法里面有参数ignore_first_line帮你跳过首行的标题,你可以查看一下。 2. 只想读取那四列应该没办法,主要在于你那几个列不是头部的几个列,比如10列的数据,你要前四列,那是可以的,因为正常读一行数据进来,我解析完前四列就行了,剩下可以不解析,可是要是你的列是1,3,5,7,9这样的,你不指定2,4,6,8列的类型,根本没法帮你把一行的数据给解析出来。*来自志愿者整理的flink

    2021-12-05 22:26:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载