1.启动start-dfs.sh,然后启动,jupyter-noteboot --ip python2
2.
看数据库中多出来一个数据库school
spark.sql("desc formatted testb").show() -------------查看表格的所有信息
下边创建一个表
下边把数据导到这个student表中:
接着验证下写三条记录放追加到student表中
#这个列表中有三条记录 放在student表中
datas=[
'8,test1,男,12',
'9,test2,女,16',
'5,test1,男,17',
]
rdd=sc.parallelize(datas)
rdd=rdd.map(lambda x:x.split(','))
rdd=rdd.map(lambda x:[int(x[0]),x[1],x[2],int(x[3])])
from pyspark.sql.types import *
sch=StructType([StructField('id',IntegerType(),True),
StructField('name',StringType(),True),
StructField('sex',StringType(),True),
StructField('age',IntegerType(),True),
])
df=spark.createDataFrame(rdd,sch)
#创建一个视图,看一下不导入
df.createOrReplaceTempView('tmpV')
spark.sql("select * from tmpV").show()
sqlContext.sql("insert overwrite table tmp_table select * from table")
insert overwrite------------覆盖到表 没写就追加
#insert 到student表中
spark.sql("insert into table student select * from tmpV")
spark.sql("select * from student").show()
显示结果成功添加
完成之后,在把上边这些人名字和年龄提取出来放在一个新的表中
(1)先在上方创建一个新表 table name_age
结果:
接下来用另外的一种存储方式: stored as file_format(文件的格式,默认是textfile(文本文件))
parquet---------------另一种文件格式
用shell进入本地文件目录:/cd spark-warehouse/name_age2 会看到文件的后缀名是parquet文件
三种常件的存储文件的格式是:textfile(csv,json),后边这两个打开看不懂但压缩非常好orcfile() parquet()
上方演示的是如何读数据与写数据
接下来演示如何使用函数(hive 中的函数udf)
求student表中的学生年龄和:
男同学女同学年龄和:
男同学女同学平均值,最大年龄,最小年龄: