1. 程式人生 > >Scala 將CSV檔案轉為RDD

Scala 將CSV檔案轉為RDD

假設csv檔案是這種格式:

user, topic, hits
om,  scala, 120
daniel, spark, 80
3754978, spark, 1

我們可以使用第一行來定義一個header class:

class SimpleCSVHeader(header:Array[String]) 
extends Serializable{
    val index = header.zipWithIndex.toMap
    def apply(array:Array[String], 
    key:String)
    :String =array(index
(key)
) }

然後我們可以利用這個header class 來得到資料:

val csv = sc.textFile("file.csv") // original file 
val data = csv.map(line => line.split(",").map(elem=>elem.trim)) //lines ion rows
val header = new SimpleCSVHeader(data.take(1)(0))
// 取出第一行來建立header
val rows = data.filter(line => header(line,"user") != "user"
) // 去掉header val users = rows.map(row => header(row,"user")) val usersByHits = rows.map(row => header(row,"user") -> header(row,"hits").toInt)

相關推薦

Scala CSV檔案轉為RDD

假設csv檔案是這種格式: user, topic, hits om, scala, 120 daniel, spark, 80 3754978, spark, 1 我們可以使用第一行來定義一個header class: class Simp

批量txt檔案轉為csv檔案

方法一: Ren命令可用於修改檔案的名稱,包括字尾名。比如,將D盤中的1.jpg重新命名為2.png,只需在命令提示符中輸入下面的命令,然後回車即可。 ren D:\1.jpg 2.png 注意,如果提示許可權不足,那麼你需要以管理員身份執行命令提示符。 如果要批量

Android smali檔案轉為jar包

想要將smali檔案轉成jar包,需要經過兩個步驟: 1.將smali檔案轉成dex檔案; 將smali轉dex我們需要用到smali.jar這個jar,然後在當前目錄輸入:java -jar smali.jar test/smali/ -o classes.dex 2.將dex檔案轉成

在mac上,csv檔案匯入MySQL,ERROR 1290 (HY000),ERROR 13 (HY000)

在mac上安裝mysql和Workbench很快,主要是在匯入csv資料時踩了很多的坑。 啟動mysql 在system preferences中點選MySql,即可進入啟動mysql的介面。在terminal中輸入輸入 mysql -u root -p, 輸入密碼即可登陸mysql。

CSV檔案匯入到hive資料庫

將csv檔案匯入hive後出現了所有的欄位只顯示在新建的表的第一個欄位中,後面的欄位全是null. 出現這種的原因是hive以行分隔資料,需要修改為按逗號'  ,  ‘ 進行分隔讀取, 具體操作如下, 首先在hive中建立自己的table,  並且設定以逗號分隔。 &nb

csv檔案匯入mysql

1.資料準備 將手頭的excel或者number資料另存為.csv檔案,方便後面的匯入 2.資料庫的準備 這裡登入資料庫,選擇對應的database,然後再建立相應的表,這裡要注意表的欄位型別和數目要和csv檔案對應 create table `r_vn_city_level`( city char(6

python處理csv檔案1內容修改後寫入到csv2檔案

我這裡的方法或許不是很好,主要做法是使用列表和字典進行轉換,感覺很繁瑣,但是也是一種方法。 如果有大神有更好的方法,請留言。 # -*- coding:utf-8 -*- #author:zgd import pandas import csv # with open("url_fea

使用nodejs的graphicsmagick模組pdf檔案轉為圖片

首先要安裝image magick。 然後安裝graphics magick模組。 寫程式碼 imageMagickOptions.appPath = config.dependencies.ImageMagick imageMagick = gm.s

Graphviz之DT:手把手教你使用視覺化工具Graphvizdot檔案轉為結構圖的pdf檔案

Graphviz下載安裝 第一步:我們首先下載視覺化工具Graphviz,百度,官網可直接下載,不過比較慢,我這裡有雲盤連結https://pan.baidu.com/s/1c2uFojA,點選即可下載 雲盤更新 連結:https://pan.baidu.com/s/1r9

pyspark學習系列(二)讀取CSV檔案RDD或者DataFrame進行資料處理

一、本地csv檔案讀取:最簡單的方法:import pandas as pd lines = pd.read_csv(file) lines_df = sqlContest.createDataFrame(lines)或者採用spark直接讀為RDD 然後在轉換lines =

pandas中的to_sql()函式csv檔案寫入到MySQL資料庫

掌握了利用pandas中的to_sql函式將csv檔案儲存到MySQL資料庫中.具體方法如下: 首先,在資料庫中建立表格,這裡是使用資料庫操作語言,並非python. CREATE TABLE cars ( 1 bigint(20) DEFAULT N

Python csv檔案裡的某一列時間戳轉化為想要的時間格式

import pandas as pd import datetime data = pd.read_csv('C:\\Users\\lenovo\\Desktop\\analysis\\AlarmInfos.csv',header=0)//從某個儲存位置讀取檔案 f

Linux中使用命令列方式呼叫openoffice服務word檔案轉為PDF

Linux中使用命令列方式呼叫openoffice服務將word檔案轉為PDF 測試安裝之後的openoffice用命令將docx檔案轉換為PDF   需要一份python的指令碼程式,因為轉換需要通過py程式去呼叫api處理,將下面程式儲存到topdf.py檔案: #

Scala 時間字串轉為時間戳

    今天需要將Nginx日誌中的時間字串轉為時間戳,再加以分析,由於剛學Scala不久,Java也只是一知半解,所以在時間轉換的時候浪費了一些時間,故在此備忘,也希望能幫到有需要的同學。    部分日誌格式如下圖:        需要將 [30/Jun/2015:05:

PyQt5使用pyinstaller打包時圖示資源無法打包的解決方法——使用pyrcc5qrc檔案轉為py檔案

才學pyqt5不久,用pyinstaller打包自己編的小程式後發現圖示沒了,於是上網找了好久的資料,終於搞好了。 整合一下以免以後忘了,也希望能幫助到別人,以下操作在window-10完成。 pyinstaller可以由py檔案生成exe檔案,是目前用的較為廣泛的一種方

Graphviz之DT:手把手教你使用視覺化工具Graphvizdot檔案轉為結構圖的png檔案

  Graphviz下載安裝、配置環境 Graphviz之DT:手把手教你使用視覺化工具Graphviz將dot檔案轉為結構圖的pdf檔案     Graphviz使用方法 dot -Tpng wineTree.dot -o wineTree.p

利用LOAD DATAcsv檔案中的資料匯入MySQL

先貼程式碼: #coding=utf-8 import csv, os, re import MySQLdb _PATH = 'D:/bike_sharing_data/trip_data/trip_history/' _TABLE_NAME = 't

scala讀取csv檔案批量插入資料庫

import java.io.FileWriter import scala.io.Source /** * 通過CSV檔案,及其預處理的欄位型別字串,輸出insert語句 */ class csv2InsertSQLServer { /** * @param CL

利用MATLAB批量.mat檔案轉為.txt檔案

因為需要將65536個.mat檔案轉為.txt檔案,手工肯定是效率太低,需要另尋出路。 1. 開始搜尋發現網上大部分都推薦的是使用save函式,介紹的思路如下:先把檔案讀入MATLAB 中,再用sav

spark:csv檔案讀取為DataFrame

以下內容在spark2.2和spark2.3中測試都通過 通用轉換形式: spark.read.schema(sch).option("header", true).csv("/path/file.csv") 注意以下幾點: csv會完全按