【问题标题】:Spark/Scala read hadoop fileSpark/Scala 读取 hadoop 文件
【发布时间】:2015-07-09 08:44:29
【问题描述】:

在猪脚本中,我使用 PigStorage('|') 保存了一个表。 我在对应的hadoop文件夹中有类似文件

part-r-00000

等等。 在 Spark/Scala 中加载它的最佳方法是什么?在这张表中,我有 3 个字段:Int、String、Float

我试过了:

text = sc.hadoopFile("file", classOf[TextInputFormat], classOf[LongWritable], classOf[Text], sc.defaultMinPartitions)

但是我需要以某种方式分割每一行。有没有更好的方法?

如果我在 python 中编码,我将创建一个由第一个字段索引的 Dataframe,其列是在字符串字段中找到的值,系数是浮点值。但是我需要使用 scala 来使用 pca 模块。而且数据框似乎与 python 的数据框不那么接近

感谢您的见解

【问题讨论】:

    标签: scala apache-spark


    【解决方案1】:

    PigStorage 创建一个没有架构信息的文本文件,因此您需要自己完成这项工作,例如

    sc.textFile("file") // or directory where the part files are  
    val data = csv.map(line => {
       vals=line.split("|")
       (vals(0).toInt,vals(1),vals(2).toDouble)}
    )
    

    【讨论】:

    • 您可以将 haddopFile 拆分为 ... val dataRDD = sc.hadoopFile("wc2.txt", classOf[TextInputFormat], classOf[LongWritable], classOf[Text],sc.defaultMinPartitions)。 map(pair => pair._2.toString).map(r => r.split("|"))
    猜你喜欢
    • 2017-03-09
    • 1970-01-01
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2018-04-26
    相关资源
    最近更新 更多