当前位置: 首页 > 知识库问答 >
问题:

加载数据文件时从文件中删除了CSV列

谷梁建中
2023-03-14

当通过数据库加载csv时,第2行下面的第4列没有加载。CSV的列数每行不同。

a,b,c
s,d,a,d
f,s
>>> df2 = sqlContext.read.format("com.databricks.spark.csv").load("sample_files/test_01.csv")
>>> df2.show()
+---+---+----+
| C0| C1|  C2|
+---+---+----+
|  a|  b|   c|
|  s|  d|   a|
|  f|  s|null|
+---+---+----+
    null
[u'a,b,c', u's,d,a,d', u'f,s']

但是没有将上面的rdd转换为dataframe会导致错误

df2=sqlcontext.read.format(“com.databricks.spark.csv”).schema(模式).load(“sample_files/test_01.csv”)

df2.show()

+---+---+----+----+----+
| e1| e2|  e3|  e4|  e5|
+---+---+----+----+----+
|  a|  b|   c|null|null|
|  s|  d|   a|   d|null|
|  f|  s|null|null|null|
+---+---+----+----+----+

df2.show()

+---+---+----+
| C0| C1|  C2|
+---+---+----+
|  a|  b|   c|
|  s|  d|   a|
|  f|  s|null|
+---+---+----+

但是,当no of列变化时,是否还有其他方法不使用模式呢?

共有1个答案

夏奕
2023-03-14

确保您有固定的标题ie行可能有数据丢失,但列名应该是固定的。

如果不指定列名,则仍然可以在读取CSV时创建架构:

val schema = new StructType()
    .add(StructField("keyname", StringType, true))
 类似资料:
  • 问题内容: 我尝试在Java中删除csv文件中的列。 例如,我有这个csv文件 我想要下一个操作后:(删除csvFile,2)将是: 我发现只有调用行而不是列的操作。 问题答案: 删除CSV文件中一列的唯一方法是删除整个文件(即文件的每一行)的标题和该列的信息。即使您使用第三方库,它也会在内部进行。

  • 问题内容: 我正在尝试从D3中的CSV文件加载数据;我有以下代码: 如果我使用D3 v4,它可以正常工作,但是如果我切换到v5,它将不再起作用。有人可以向我解释如何修改代码以使其与D3 v5兼容吗? 问题答案: d3 v5使用访存API并返回要求以下代码的Promise。 万一将来人们想要v4。另一方面,d3v4使用XMLHttpRequest方法,并且不返回要求此代码的Promise csv加载

  • 我正在通过SSIS将数据从csv文件加载到我的sql表中。是否对从csv文件读取的记录数指定了默认限制? 在加载csv文件时,我的数据流组件只处理5000条记录,尽管它包含5341条记录,如下面的图像所示。我如何修复这个问题?

  • 很多时候,我们想要绘制文件中的数据。 有许多类型的文件,以及许多方法,你可以使用它们从文件中提取数据来图形化。 在这里,我们将展示几种方法。 首先,我们将使用内置的csv模块加载CSV文件,然后我们将展示如何使用 NumPy(第三方模块)加载文件。 import matplotlib.pyplot as plt import csv x = [] y = [] with open('example

  • 问题内容: 我已经能够使用该站点上多个用户的输入来使用python创建一个csv,并希望对您的帖子表示感谢。我现在很困惑,将发表我的第一个问题。 我的input.csv看起来像这样: 我正在尝试删除“年份”列及其所有条目。从1960年到2010年,总共有40多个条目。 问题答案: 顺便说一句,循环可以删除,但并没有真正简化。 同样,您可以以直截了当的方式坚持删除列的要求。我发现这通常是一个不好的策

  • 问题内容: 在我的应用程序中,我生成一个公钥/私钥对,并将其存储以供以后在磁盘上使用。加载并重新初始化私钥可以正常工作,但是对于私钥,我得到了一个未知的KeySpec类型:java.security.spec.PKCS8EncodedKeySpec- 我不知道为什么。 这就是我创建和保存密钥的方式(简化了一些代码以便于阅读): 下次加载私钥可以正常工作: 公用密钥的类似代码惨遭失败: 那我在做什么