2.3加载数据
1.下载数据文件u.user
head -3 u.user ##查看文件前几行
cat u.user |wc -l 或者 more u.user |wc -l ##数文件记录数
2. 把本地文件上传到hdfs 两步:
第一步,查看本地是否有文件; 语句: hdfs dfs -ls +文件路径;
第二步,把本地文件上传 ;语句:hdfs dfs -put u.user /u01/bigdata/data(前面是文件名,后面是hdfs路径)
第三部,查看hdfs dfs -ls +/u01/bigdata/data/;
3.以pyspark为例,加载数据并把数据注册成一个表
首先启动Pyspark客户端,导入需要的包,通过textFile的方法去取
#导入需要的包
from pyspark.sql import SparkSession
from pyspark.sql import Row
#初始化SparkSession
spark = SparkSession\
.builder \
.appName("python Spark SQL basic example") \
.config("spark.some.config.option","some-value") \
.getOrCreate()
app_id = spark.sparkContext.applicationId
print(app_id) --这是展示app_id的地址方便查看
##加载数据,并处理分隔符数据
sc = spark.sparkContext
userrdd = sc.textFile("hdfs://&*&*&***&*/u.user").map(lambda line: line.split("|"))
##利用反射机制推断模式(schema)把dataframe注册成一个table
温馨提示:不要把fields写成field哟。
正确代码
df = userrdd.map(lambda fields :Row(userid = fields[0],age = int(fields[1]),gender = fields[2],occupation = fields[3],zip = fields[4]))
schemauser = spark.createDataFrame(df)
schemauser.createOrReplaceTempView("users")(如果在生产环境上搞不要担心users表,这是一个临时视图表)