from pyspark.sql.types import *
rdd = sc.parallelize([('Alice', 160),('Andy', 159),('Bob', 170),('Cindy', 165),('Rose', 160)])
schema = StructType([
StructField("name", StringType(), True),
StructField("height", IntegerType(), True)
df = spark.createDataFrame(rdd, schema)
结果如下:
2.如果想要查找出以”A”开头的同学姓名呢,这个时候可以用like来进行模糊匹配
df.filter(df.name.like("A%")).show()
结果如下:
3.如果想要查找出不以”A”开头的同学姓名呢,当然在上面的基础上加个否定就可以了
df.filter(~df.name.like("%A%")).show()
结果如下:
4.小提醒
在不同的语言中通配符的表示不一样,有的用”*”,有的用”%”
在hive中对like的否定不是用”~”,可以直接用not(A like B)
具体如何创建原始数据,请看上一篇博客(dataframe的8种创建方法)
from
pyspark
.sql import SparkSession
spark = SparkSession.builder.appName('increase delete change select').master('local').getOrCreate()
df = spark.createDataFrame([
匹配一个很简单,批量匹配如下
df_obj[df_obj['title'].str.contains(r'.*?n.*')] #使用正则表达式进行模糊匹配,*匹配0或无限次,?匹配0或1次
pyspark
dataframe
中
模糊匹配有两种方式
2.spark dataframe api, filter rlike 联合使用
df1=d...
from
pyspark
.sql.functions import concat, concat_ws
df = spark.createDataFrame([('abcd','123')], ['s',...
a=cur.execute("select ip,info,env from machine_info where substring_index(ip,'.',-1) +0 >=%s and substring_index(ip,'.',-1) + 0
在Python
中
%是一个格式化字符,所以如果需要使用%则需要写成%%。将在Python
中
执行的sql语句改为:sql = "SELECT * FROM table_test WHERE value LIKE '%%%%%s%%%%'" % test_value执行成功,print出SQL语句之后为:SELECT * FROM table_test WHERE value LIKE '%%publi...
最初于2019年4月26日发布在https://hackersandslackers.com。轻松的DataFrame清理技术,范围从删除有问题的行到选择重要的列。成为一名数据工程师会使事情变得无法清晰表达。 似乎不可避免的是,每个善意的Spark教程都注定会在没有太多解释的情况下陷入难以理解的代码墙。 这在StackOverflow
中
甚至显而易见,在这里,简单的问题经常会被荒谬的不必要的解决方案...
SparkSQL是用于结构化数据处理的Spark模块。它提供了一种称为DataFrame的编程抽象,是由SchemaRDD发展而来。不同于SchemaRDD直接继承RDD,DataFrame自己实现了RDD的绝大多数功能。SparkSQL增加了DataFrame(即带有Schema信息的RDD),使用户可以在SparkSQL
中
执行SQL语句,数据既可以来自RDD,也可以是Hive、HDFS、Cassandra等外部数据源,还可以是JSON格式的数据。
PySpark
数据分析基础。...
18.Spark sql regexp_replace 及 rlike
用法
工作
中
遇到了一些字符串
中
偶然含有 \n (软回车) \r (软空格),在写入到hive后,建Kylin cube时有报错,说明在数据清洗时,没有考虑到这一点。要在数据清洗时,去除 \n (软回车) \r (软空格)
# RDD的替换方法
s.replaceAll("[\\r\\n]", "")
# ...
在查看dataFrame的信息时,可以通过collect()、show()、或者take()、来查看DataFrame
中
的数据(show()和take()包含了限制返回行数的选项)
1.查看行数
可以使用count()方法查看DataFrame的行数
from
pyspark
.sql import SparkSession
spark= SparkSession\