我使用spark读取一个CSV文件,CSV中的一个字段值是91520122094491671D
。
读取后的值是9.152012209449166...
。
我发现如果一个字符串以数字开头,以D/F结尾,结果就是这样。
但是我需要将数据作为字符串读取。
那么该怎么办?
tax_file_code| cus_name| tax_identification_number
T19915201| 息烽家吉装饰材料店| 91520122094491671D
Scala代码如下所示:
sparkSession.read.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", true.toString)
.load(getHadoopUri(uri))
.createOrReplaceTempView("t_datacent_cus_temp_guizhou_ds_tmp")
sparkSession.sql(
s"""
| select cast(tax_file_code as String) as tax_file_code,
| cus_name,
| cast(tax_identification_number as String) as tax_identification_number
| from t_datacent_cus_temp_guizhou_ds_tmp
""".stripMargin).createOrReplaceTempView("t_datacent_cus_temp_guizhou_ds")
sparkSession.sql("select * from t_datacent_cus_temp_guizhou_ds").show
结果如下所示。
+-----------------+-----------------+-------------------------+
|tax_file_code | cus_name |tax_identification_number|
+-----------------+-----------------+-------------------------+
| T19915201 |息烽家吉装饰材料店 | 9.152012209449166...|
+-----------------+-----------------+-------------------------+
听起来像是尾随的D/F将模式解释器设置为double或floats,列被截断,所以您看到的是指数值
如果希望所有列都是字符串,请移除
option("inferSchema", true.toString)
问题内容: 我需要阅读一个CSV文件,其中包含带有逗号的字段,因此我将包含逗号的字段加了双引号,例如: 但是,当我尝试在Python中读取文件时,得到的字段由逗号分隔,如下所示: 我正在读取具有以下代码的CSV文件: 是否可以读取包含逗号的双引号字段? 问题答案: Python模块实际上确实支持带引号的字段,即使默认情况下也是如此。您的问题在于,默认情况下,Python不会跳过空格,因此您需要使用
我想从多列csv文件中读取特定列,并使用Java在其他csv文件中打印这些列。需要帮忙吗?下面是我逐行打印每个令牌的代码。。但我希望只打印多列csv中的几列。
然后我跑: 然后我得到: IllegalArgumentException:需求失败:列数不匹配。旧列名(1):值新列名(5):startIP,endIP,City,Longitude,Latitude at scala.predef$.require(predef.scala:224)at org.apache.spark.sql.dataset.todf(dataset.scala:376)a
我使用以下方法将csv文件读入Spark: df=spark.read.format(file_type).options(header='true',quote='\"',ignoreleadingwhitespace='true',inferschema='true').load(file_location) 这是正常行为还是读错了? 更新:我将标记问题作为回答,因为下面的提示是有用的。然而,
我尝试使用pyspark读取csv文件,并使用以下pyspark代码: 但是我得到了这个错误: 在collect(self)532中使用SCCallSiteSync(self._sc)作为CSS:533 sock_info=self._jdf.collectTopython()-->534返回列表(_load_from_socket(sock_info,BatchedSerializer()))5
我得到了他们每个人的错误: 警告:fopen(../top.txt)[function.fopen]:无法打开流:没有这样的文件或目录 警告:文件大小()[function.filesize]:统计失败…/top.txt 警告:fread():提供的参数不是有效的流资源 警告:fclose():提供的参数不是有效的流资源 所有文件和文件夹中的CHMOD,设置为777 服务器上存在所有文件 PHP5