df.printSchema()
Name --- string
City ----string
df.withColumn("created_date",current_date())
df.printSchema()
Name --- string
City --- string
created_date --- Date
df.show(2)
Name City created_date
Greg MN 2020-09-13
John NY 2020-09-13
稍后,我尝试使用pyspark从s3读取csv文件,created_date列datatype更改为timestamp。
df1 = spark.read.format("csv").option("header","true").option("delimiter",",").option("inferschema","true").load("s3://location/xxxx.csv")
df1.printSchema()
Name --- string
City --- string
created_date --- Timestamp
df1.show(2)
Name City created_date
Greg MN 2020-09-13 00:00:00
John NY 2020-09-13 00:00:00
有人知道为什么created_date列数据类型在从S3读取文件时改为timestamp而不是date吗?其实我在阅读的时候正在寻找日期数据类型,我很感激你的帮助!
该行为与S3无关,而是与Spark i在读取时如何获取数据类型有关。
在非平凡的情况下,模式推断可能会导致意外的行为,在您的例子中,created_date
字段被解释为timestamp
,其日期正确,但小时、分钟和秒都为0s,因为这些数字没有数据。
在读取时尝试显式设置架构:
from pyspark.sql.types import StructType, IntegerType, DateType
customSchema = StructType([
StructField("Name", StructType()),
StructField("City", StructType()),
StructField("created_date", DateType())
])
df1 = spark.read.format("csv")
.option("delimiter"," ")
.option("header", "true")
.schema(customSchema)
.load("s3://location/xxxx.csv")
问题内容: 我正在读取csv并与mysql检查记录是否存在于我的表中或不在php中。 csv大约有25000条记录,当我运行我的代码时,它在2m 10s后显示“服务不可用”错误(加载:2m 10s) 在这里我添加了代码 注意:我只想列出表中不存在的记录。 请为我建议解决方案… 问题答案: 首先,您应该了解,在使用file_get_contents时,您会将整个数据字符串提取到一个变量中,该变量存储
问题内容: 我正在从包含以下数据的CSV文件(xyz.CSV)中读取数据: 当我使用循环对其进行迭代时,我可以按以下代码逐行打印数据,并且仅打印column1数据。 通过上面的代码,我只能得到第一列。 如果我尝试打印line [1]或line [2],则会出现以下错误。 请建议打印列2或列3的数据。 问题答案: 这是我获得第二列和第三列的方法: 结果如下:
我正在尝试读取Mac上pig shell上的csv文件。我所做的只是文件到变量中,然后变量。我是这样做的: 我使用的数据是从这里提供的github下载的 此文件在我的Mac上的本地安装的hdfs中可用。当我执行时,我得到一个错误: org.apache.pig.impl.logicallayer.FrontendException:错误1066:无法打开别名影片的迭代器 在org.apache.p
问题内容: 当我从CSV文件读回数据时,每个单元格都被解释为字符串。 如何自动将读取的数据转换为正确的类型? 或者更好:我如何告诉csv阅读器每列的正确数据类型? (我写了一个二维列表,其中每一列属于不同类型(bool,str,int,整数列表),输出到CSV文件中。) 样本数据(在CSV文件中): 问题答案: 如文档所述,CSV阅读器不会执行自动数据转换。您具有QUOTE_NONNUMERIC格
我想从多列csv文件中读取特定列,并使用Java在其他csv文件中打印这些列。需要帮忙吗?下面是我逐行打印每个令牌的代码。。但我希望只打印多列csv中的几列。
我是R的新手,想读一个csv文件。但是当我试图阅读它时,我遇到了错误。我的csv文件如下: 当我在RStudio中使用此命令时,我得到了错误:命令: 错误: 读取时出错。表(file=file,header=header,sep=sep,quote=quote,:不允许重复的“row.names” 我还尝试删除错误并使用此命令: 但是当我查看输出时,它不能保持方阵的结构。你能帮我做什么吗?