记录解决java spark读取python保存的csv文件报错_java spark读取csv文件数据-程序员宅基地

技术标签: python  java  spark  Spark  

csv文件内容如下

Value
/emr.s3.zlh.com/zlh/UserInfoBak/2023/20230418/zbook_20230418_094807.gz

一开始代码如下

Dataset<Row> jsonDs = sparkSession.read().option("inferSchema", true)
				.format("csv")
                .load(flagPath).filter((FilterFunction<Row>) Objects::nonNull);

运行后报错

23/04/18 10:40:36 ERROR yarn.ApplicationMaster: User class threw exception: java.lang.IllegalArgumentException: Field "Value" does not exist.
Available fields: _c0
java.lang.IllegalArgumentException: Field "Value" does not exist.
Available fields: _c0
	at org.apache.spark.sql.types.StructType$$anonfun$fieldIndex$1.apply(StructType.scala:303)
	at org.apache.spark.sql.types.StructType$$anonfun$fieldIndex$1.apply(StructType.scala:303)
	at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
	at scala.collection.AbstractMap.getOrElse(Map.scala:59)
	at org.apache.spark.sql.types.StructType.fieldIndex(StructType.scala:302)
	at org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema.fieldIndex(rows.scala:187)
	at org.apache.spark.sql.Row$class.getAs(Row.scala:333)
	at org.apache.spark.sql.catalyst.expressions.GenericRow.getAs(rows.scala:166)
	at com.cqvip.jobstream.common.spark.userlog.UniqueUserInfo.main(UniqueUserInfo.java:103)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:685)
23/04/18 10:40:36 INFO yarn.ApplicationMaster: Final app status: FAILED, exitCode: 15, (reason: User class threw exception: java.lang.IllegalArgumentException: Field "Value" does not exist.
Available fields: _c0
	at org.apache.spark.sql.types.StructType$$anonfun$fieldIndex$1.apply(StructType.scala:303)
	at org.apache.spark.sql.types.StructType$$anonfun$fieldIndex$1.apply(StructType.scala:303)
	at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
	at scala.collection.AbstractMap.getOrElse(Map.scala:59)
	at org.apache.spark.sql.types.StructType.fieldIndex(StructType.scala:302)
	at org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema.fieldIndex(rows.scala:187)
	at org.apache.spark.sql.Row$class.getAs(Row.scala:333)
	at org.apache.spark.sql.catalyst.expressions.GenericRow.getAs(rows.scala:166)
	at com.cqvip.jobstream.common.spark.userlog.UniqueUserInfo.main(UniqueUserInfo.java:103)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:685)
)

怀疑是分隔符问题,因为python指定了"\t",而spark默认是逗号,但是指定分隔符"\t"读取以及修改了python指定的分隔符为逗号都尝试了,作为只有一列的csv文件,显然不是分隔符的问题。

想到spark写出csv默认情况下,使用逗号作为列分隔符,并且没有标题行。所以应该是我读取的时候没有设置第一行为标题行导致,修改测试后果然是这样

修改后代码:

Dataset<Row> jsonDs = sparkSession.read()
                .option("header", "true")
                .option("inferSchema", "true")
                .csv(flagPath).filter((FilterFunction<Row>) Objects::nonNull);
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zlhblogs/article/details/130228660

智能推荐

2020解读中国互联网:局部领先、快进的数字化发展_解读中国互联网:局部领先-程序员宅基地

文章浏览阅读133次。局部领先的当前格局:中国互联网特色分明,部分领域世界领先应对不确定性,是未来十年数字经济发展的重要命题。突如其来的新冠疫情为全球发展秩序带来了巨大的不确定性,政府、企业和个体迅速进入了一场全社会参与的数字化实验,以数字化作为应对不确定性的有效方针。在全社会数字化的进程中,中◿互联网“数智化”的步伐加快,呈现以下特色格局:在产业端,局部领先全球:产业互联网发展水平在不同行业差异明显。在需求端个性化程度高且供给端分散的行业,例如餐饮、服饰等,数字化程度已开始引领全球,互联网巨头赋能行业供应链各环节的B端企业_解读中国互联网:局部领先

关于Linux如何加入windows创建的域_linux账户验证使用windows域 活动目录-程序员宅基地

文章浏览阅读2.7k次,点赞2次,收藏11次。一、场景描述在某系统微服务改造中,在某windows域环境下,创建了3台Linux 虚拟机来进行功能性验证,为更好地彼此间信任和融合域环境,需要将Linux虚拟机加入到现有的Windows域内,那如何实施呢,本次将对此进行讨论阐述。回顾AD 域验证过程:自 Windows 2000 以来,AD 一直是 Windows 的身份验证和目录服务,AD 基于 LDAP 实现其功能,其使用 DNS 进行主机名的解析,使用 Kerberos V5 进行用户身份验证,使用 LDAP V3 进行统一的帐户管理。二、常_linux账户验证使用windows域 活动目录

qt设计为磨砂玻璃效果_Pixyz的2020.1更新为数据准备带来了磨砂和光泽-程序员宅基地

文章浏览阅读753次。qt设计为磨砂玻璃效果For their 2020.1 release, our partners at Pixyz have focused on improvements ranging from core geometry capabilities and new import formats to visualization and user interface enhancements...._qt将图片添加毛玻璃效果

网络协议 (三) Http1.0 vs Http1.1 vs Http2.0 (应用层)_http1.0和http1.1哪个占用资源-程序员宅基地

文章浏览阅读2.1k次。这篇文章会从下面几个维度来对比 HTTP 1.0 和 HTTP 1.1:响应状态码 缓存处理 连接方式 Host头处理 带宽优化1. 响应状态码Http1.1 与 Http1.0 相比,新加入了大量的状态码。2. 缓存处理Http1.0 中的缓存机制非常简单,服务端使用 Expires 标签来标识一个相应体,在 Expires 标志的时间内的所有请求,获得的都会是缓存。服务端 初次返回给 客户端 的响应体中,会有一个 Last-Modified 标签,该标签标记了被请求资源在_http1.0和http1.1哪个占用资源

【指纹识别】基于matlab指纹图像细节特征提取 【含Matlab源码 227期】_matlab指纹特征提取代码-程序员宅基地

文章浏览阅读6.2k次,点赞4次,收藏53次。指纹图像细节特征提取 完整的代码,方可运行;可提供运行操作视频!适合小白!_matlab指纹特征提取代码

DB2创建数据库常用参数详解-程序员宅基地

文章浏览阅读169次。转自http://czmmiao.iteye.com/blog/1335801DB2创建数据库常用参数详解本文只介绍DB2 create database语法中的常用参数http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp CREATE DATABASE语法树Read syntax diagramSkip visua..._database collating sequence

随便推点

JAVA中MD5加密解密(MD5工具类)_java md5解密工具类-程序员宅基地

文章浏览阅读2w次,点赞5次,收藏69次。ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)http://ascii.911cha.com/工具类如下:import org.apache.commons.codec.digest.DigestUtils;import java.math.BigInteger;import java.se..._java md5解密工具类

SM2加密解决java与iOS端加解密不配套问题_ibm jdk支持sm2加密-程序员宅基地

文章浏览阅读4.5k次,点赞3次,收藏3次。SM2加密解决java与iOS端加解密不配套问题问题描述问题判定代码声明问题描述使用java开发的SM2加解密,由java层生成SM2公私钥,iOS、Android(因和java层一致,暂忽略)层使用公钥做加密,java层做解密。java生成的公私钥在iOS和java层单独做加解密均可用。iOS层加密结果java层无法解密问题判定SM2非对称加密的结果由C1,C2,C3三部分组成。其中C1是生成随机数的计算出的椭圆曲线点,C2是密文数据,C3是SM3的摘要值。最开始的国密标准的结果是按C1C_ibm jdk支持sm2加密

Python爬虫踩坑之json报错,json包比较_python爬虫json载荷遇到的坑-程序员宅基地

文章浏览阅读3.1k次。json.loads()报错simplejson,demjson,json性能比较_python爬虫json载荷遇到的坑

【数据分享】2000~2022年中国区域250米植被覆盖度FVC数据集_植被覆盖度fvc产品-程序员宅基地

文章浏览阅读279次。通过时空变化趋势分析检验法分析,该数据集符合时间变化趋势和空间变化趋势。文件命名:HXPT_FVC_MONTH_MAX_250m_YYYYMM_全国_yyyymmddhhmmss.tif,其中HXPT代表国家生态保护红线监管平台生产,FVC代表植被覆盖度,MONTH代表月度,MAX代表最大值合成,250m代表空间分辨率250米,全国代表覆盖范围全国,YYYYMM代表数据时间年月,yyyymmddhhmmss代表数据生产时间年月日时分秒 数据读取方式:文件采用.tif格式存储,可用ArcGIS等软件打开。_植被覆盖度fvc产品

国密SM算法及实现加密和解密_import com.antherd.smcrypto.sm4.sm4; import com.an-程序员宅基地

文章浏览阅读475次。【代码】国密加密算法及实现。_import com.antherd.smcrypto.sm4.sm4; import com.antherd.smcrypto.sm4.sm4opti

Implicit Neural Representations for Image Compression_inrs 图像压缩-程序员宅基地

文章浏览阅读151次。隐性神经表征(INRs)作为各种数据类型的一种新颖而有效的表征而受到关注。最近,先前的工作将 INRs 应用于图像压缩。这种压缩算法作为一种通用的方法,对任何基于坐标的数据模式都是很有希望的。然而,目前基于 INR 的压缩算法需要在很大程度上改善其率失真性能。这项工作在这个问题上取得了进展。首先,我们为基于 INR 的压缩算法提出了元学习的初始化,从而提高了速率失真性能。此外,它也导致了更快的收敛速度。其次,与之前基于 INR 的压缩工作相比,我们对网络结构进行了简单但非常有效的改变。_inrs 图像压缩

推荐文章

热门文章

相关标签