【问题标题】:Rdd to Data Frame - i am getting output in the data frame table with " " like "2012-10-10" but my required output is without " " like 2012-10-10Rdd 到数据框 - 我在数据框表中使用“”获取输出,如“2012-10-10”,但我需要的输出没有“”,如 2012-10-10
【发布时间】:2019-09-13 04:54:09
【问题描述】:

我的输入文件包含以下输入

"date","time","size","r_version","r_arch","r_os"  
"2012-10-01","00:30:13",35165,"2.15.1","i686","linux-gnu"  
"2012-10-01","00:30:15",212967,"2.15.1","i686","linux-gnu"  
"2012-10-01","02:30:16",167199,"2.15.1","x86_64","linux-gnu"

我现在的输出是这样的

present output

我需要的输出是

required output

我试过下面的代码

conf=SparkConf().setMaster("local").setAppName("logfile")
sc=SparkContext(conf = conf)
spark=SparkSession.builder.appName("yuva").getOrCreate()
lines=sc.textFile("file:///SaprkCourse/filelog.txt")
lines=Seq("file:///SaprkCourse/filelog.txt").t
header = lines.first()
lines = lines.filter(lambda row : row != header)
values=lines.map(lambda x: x.split(","))
df=values.toDF(header.split(","))
df.show()

【问题讨论】:

    标签: apache-spark pyspark apache-spark-sql pyspark-sql


    【解决方案1】:

    您应该检查数据框中的数据类型并将其转换为字符串。也许,数据框自动推断数据类型到日期。 例如,Pyspark 会自动将“2010-10-02”推断为日期时间。

    【讨论】:

    • 在这种情况下,日期帧可能会自动推断为字符串。您应该检查数据类型
    • 嗨,不仅是日期,而且对于表中的每个值,都应该删除“”,例如我拿了日期并解释了。
    【解决方案2】:

    您可以在创建数据框时使用以下选项

    option("quote", "\"")
    

    希望对你有帮助

    【讨论】:

    • 能否请您检查我的代码并告诉我可以在哪里插入该代码
    • @srikanth 您没有使用数据框 API 读取 csv 文件的任何特殊原因?
    【解决方案3】:

    嗨,我希望你使用的是 pyspark2,如果是这样,你可以简单地编写以下命令:

    lines= spark.read.csv("file:///SaprkCourse/filelog.txt",header=True)

    否则你可以通过添加一个小函数来编辑你的代码,如下所示:

    lines= sc.textFile("file:///SaprkCourse/filelog.txt")

    header = lines.first()

    lines = lines.filter(lambda row : row != header)

    定义文本(x):

        k = x.replace('"','').strip().split(",")
        return k
    

    values=lines.map(文本)

    df=values.toDF(header.replace('"','').split(","))

    df.show()

    【讨论】:

      猜你喜欢
      • 2023-01-13
      • 2017-12-24
      • 2021-06-24
      • 1970-01-01
      • 2020-11-02
      • 2013-01-29
      • 1970-01-01
      • 2021-10-31
      • 1970-01-01
      相关资源
      最近更新 更多