当前位置: 首页 > news >正文

网站营销的特征有seo费用

网站营销的特征有,seo费用,云南网站推广,做网站都需要什么步骤文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的…

文章最前: 我是Octopus,这个名字来源于我的中文名--章鱼;我热爱编程、热爱算法、热爱开源。所有源码在我的个人github ;这博客是记录我学习的点点滴滴,如果您对 Python、Java、AI、算法有兴趣,可以关注我的动态,一起学习,共同进步。

这篇文章旨在帮你写出健壮的pyspark 代码。

在这里,通过它写pyspark单元测试,看这个代码通过PySpark built,下载该目录代码,查看JIRA 看板票的pyspark测试

创建PySpark应用

这边一个例子是怎么创建pyspark应用,如果你的应用已经测试,你可以跳过这一段,测试你的pyspark程序。

现在,开始测试你的spark session

from pyspark.sql import SparkSession
from pyspark.sql.functions import col# Create a SparkSession
spark = SparkSession.builder.appName("Testing PySpark Example").getOrCreate()

接下来,创建一个DataFrame

sample_data = [{"name": "John    D.", "age": 30},{"name": "Alice   G.", "age": 25},{"name": "Bob  T.", "age": 35},{"name": "Eve   A.", "age": 28}]df = spark.createDataFrame(sample_data)

现在,我们对我们的DataFrame来定义转换算子

from pyspark.sql.functions import col, regexp_replace# Remove additional spaces in name
def remove_extra_spaces(df, column_name):# Remove extra spaces from the specified columndf_transformed = df.withColumn(column_name, regexp_replace(col(column_name), "\\s+", " "))return df_transformedtransformed_df = remove_extra_spaces(df, "name")transformed_df.show()
+---+--------+
|age|    name|
+---+--------+
| 30| John D.|
| 25|Alice G.|
| 35|  Bob T.|
| 28|  Eve A.|
+---+--------+

测试你的pyspark应用

现在来测试你的pyspark转换算子。一个选择简化DataFrame测试结果,可以简化数据或者输入数据。更好的方式写测试例子,这里有一些例子怎么去测试我们的代码,这些代码是基于spark 3.5以下版本。对于这些例子做笔记是非常值得的,可以通过测试框架,不管你是使用unittest or pytest; built-in PySpark 测试是单机的,意味着他兼容测试框架和CI测试

选项1: 仅仅使用PySpark Built-in 测试方法

import pyspark.testing
from pyspark.testing.utils import assertDataFrameEqual# Example 1
df1 = spark.createDataFrame(data=[("1", 1000), ("2", 3000)], schema=["id", "amount"])
df2 = spark.createDataFrame(data=[("1", 1000), ("2", 3000)], schema=["id", "amount"])
assertDataFrameEqual(df1, df2)  # pass, DataFrames are identical
# Example 2
df1 = spark.createDataFrame(data=[("1", 0.1), ("2", 3.23)], schema=["id", "amount"])
df2 = spark.createDataFrame(data=[("1", 0.109), ("2", 3.23)], schema=["id", "amount"])
assertDataFrameEqual(df1, df2, rtol=1e-1)  # pass, DataFrames are approx equal by rtol

 您还可以简单地比较两个 DataFrame 模式:

from pyspark.testing.utils import assertSchemaEqual
from pyspark.sql.types import StructType, StructField, ArrayType, DoubleTypes1 = StructType([StructField("names", ArrayType(DoubleType(), True), True)])
s2 = StructType([StructField("names", ArrayType(DoubleType(), True), True)])assertSchemaEqual(s1, s2)  # pass, schemas are identical

选项 2:使用单元测试

对于更复杂的测试场景,您可能需要使用测试框架。

最流行的测试框架选项之一是单元测试。让我们逐步了解如何使用内置 Pythonunittest库来编写 PySpark 测试。有关该unittest库的更多信息,请参阅此处: https: //docs.python.org/3/library/unittest.html。

首先,您需要一个 Spark 会话。您可以使用包@classmethod中的装饰器unittest来负责设置和拆除 Spark 会话。

import unittestclass PySparkTestCase(unittest.TestCase):@classmethoddef setUpClass(cls):cls.spark = SparkSession.builder.appName("Testing PySpark Example").getOrCreate()@classmethoddef tearDownClass(cls):cls.spark.stop()

 现在我们来写一个unittest类。

from pyspark.testing.utils import assertDataFrameEqualclass TestTranformation(PySparkTestCase):def test_single_space(self):sample_data = [{"name": "John    D.", "age": 30},{"name": "Alice   G.", "age": 25},{"name": "Bob  T.", "age": 35},{"name": "Eve   A.", "age": 28}]# Create a Spark DataFrameoriginal_df = spark.createDataFrame(sample_data)# Apply the transformation function from beforetransformed_df = remove_extra_spaces(original_df, "name")expected_data = [{"name": "John D.", "age": 30},{"name": "Alice G.", "age": 25},{"name": "Bob T.", "age": 35},{"name": "Eve A.", "age": 28}]expected_df = spark.createDataFrame(expected_data)assertDataFrameEqual(transformed_df, expected_df)
运行时,unittest将选取名称以“test”开头的所有函数。

选项 3:使用Pytest

pytest我们还可以使用最流行的 Python 测试框架之一来编写测试。有关 的更多信息pytest,请参阅此处的文档: https: //docs.pytest.org/en/7.1.x/contents.html。

使用pytest固定装置允许我们在测试之间共享 Spark 会话,并在测试完成时将其拆除。

import pytest@pytest.fixture
def spark_fixture():spark = SparkSession.builder.appName("Testing PySpark Example").getOrCreate()yield spark

然后我们可以这样定义我们的测试:

import pytest
from pyspark.testing.utils import assertDataFrameEqualdef test_single_space(spark_fixture):sample_data = [{"name": "John    D.", "age": 30},{"name": "Alice   G.", "age": 25},{"name": "Bob  T.", "age": 35},{"name": "Eve   A.", "age": 28}]# Create a Spark DataFrameoriginal_df = spark.createDataFrame(sample_data)# Apply the transformation function from beforetransformed_df = remove_extra_spaces(original_df, "name")expected_data = [{"name": "John D.", "age": 30},{"name": "Alice G.", "age": 25},{"name": "Bob T.", "age": 35},{"name": "Eve A.", "age": 28}]expected_df = spark.createDataFrame(expected_data)assertDataFrameEqual(transformed_df, expected_df)

当您使用该pytest命令运行测试文件时,它将选取名称以“test”开头的所有函数。

把它们放在一起!

让我们在单元测试示例中一起查看所有步骤。

# pkg/etl.py
import unittestfrom pyspark.sql import SparkSession
from pyspark.sql.functions import col
from pyspark.sql.functions import regexp_replace
from pyspark.testing.utils import assertDataFrameEqual# Create a SparkSession
spark = SparkSession.builder.appName("Sample PySpark ETL").getOrCreate()sample_data = [{"name": "John    D.", "age": 30},{"name": "Alice   G.", "age": 25},{"name": "Bob  T.", "age": 35},{"name": "Eve   A.", "age": 28}]df = spark.createDataFrame(sample_data)# Define DataFrame transformation function
def remove_extra_spaces(df, column_name):# Remove extra spaces from the specified column using regexp_replacedf_transformed = df.withColumn(column_name, regexp_replace(col(column_name), "\\s+", " "))return df_transformed
# pkg/test_etl.py
import unittestfrom pyspark.sql import SparkSession# Define unit test base class
class PySparkTestCase(unittest.TestCase):@classmethoddef setUpClass(cls):cls.spark = SparkSession.builder.appName("Sample PySpark ETL").getOrCreate()@classmethoddef tearDownClass(cls):cls.spark.stop()# Define unit test
class TestTranformation(PySparkTestCase):def test_single_space(self):sample_data = [{"name": "John    D.", "age": 30},{"name": "Alice   G.", "age": 25},{"name": "Bob  T.", "age": 35},{"name": "Eve   A.", "age": 28}]# Create a Spark DataFrameoriginal_df = spark.createDataFrame(sample_data)# Apply the transformation function from beforetransformed_df = remove_extra_spaces(original_df, "name")expected_data = [{"name": "John D.", "age": 30},{"name": "Alice G.", "age": 25},{"name": "Bob T.", "age": 35},{"name": "Eve A.", "age": 28}]expected_df = spark.createDataFrame(expected_data)assertDataFrameEqual(transformed_df, expected_df)
unittest.main(argv=[''], verbosity=0, exit=False)
在 1.734 秒内完成 1 次测试
<unittest.main.TestProgram 位于 0x174539db0>

文章转载自:
http://ballpoint.pzdurr.cn
http://acanthopterygian.pzdurr.cn
http://actionless.pzdurr.cn
http://anticyclonic.pzdurr.cn
http://cardiotomy.pzdurr.cn
http://cabbies.pzdurr.cn
http://catboat.pzdurr.cn
http://administrant.pzdurr.cn
http://ccu.pzdurr.cn
http://asseveration.pzdurr.cn
http://beadle.pzdurr.cn
http://avignon.pzdurr.cn
http://bosseyed.pzdurr.cn
http://around.pzdurr.cn
http://camper.pzdurr.cn
http://apparatus.pzdurr.cn
http://afghan.pzdurr.cn
http://autoeroticism.pzdurr.cn
http://carcajou.pzdurr.cn
http://auriscope.pzdurr.cn
http://cancellation.pzdurr.cn
http://carbonnade.pzdurr.cn
http://bonhomie.pzdurr.cn
http://apple.pzdurr.cn
http://antithyroid.pzdurr.cn
http://allure.pzdurr.cn
http://captivity.pzdurr.cn
http://castellan.pzdurr.cn
http://belletrist.pzdurr.cn
http://abac.pzdurr.cn
http://attaintment.pzdurr.cn
http://cachinnatoria.pzdurr.cn
http://castile.pzdurr.cn
http://avalanche.pzdurr.cn
http://chiccory.pzdurr.cn
http://bezoar.pzdurr.cn
http://boundary.pzdurr.cn
http://awmous.pzdurr.cn
http://biker.pzdurr.cn
http://chloracne.pzdurr.cn
http://assyriologist.pzdurr.cn
http://canvasback.pzdurr.cn
http://cerastium.pzdurr.cn
http://bursiculate.pzdurr.cn
http://bianca.pzdurr.cn
http://birdbath.pzdurr.cn
http://acrodromous.pzdurr.cn
http://canasta.pzdurr.cn
http://adrenolytic.pzdurr.cn
http://chairside.pzdurr.cn
http://anthurium.pzdurr.cn
http://carburize.pzdurr.cn
http://caroche.pzdurr.cn
http://avoir.pzdurr.cn
http://casting.pzdurr.cn
http://backbitten.pzdurr.cn
http://auditorial.pzdurr.cn
http://choric.pzdurr.cn
http://arietta.pzdurr.cn
http://carnification.pzdurr.cn
http://autocritical.pzdurr.cn
http://caribbee.pzdurr.cn
http://apoenzyme.pzdurr.cn
http://cai.pzdurr.cn
http://arroyo.pzdurr.cn
http://biface.pzdurr.cn
http://brownstone.pzdurr.cn
http://bridge.pzdurr.cn
http://bribe.pzdurr.cn
http://bayou.pzdurr.cn
http://bugologist.pzdurr.cn
http://chance.pzdurr.cn
http://cervices.pzdurr.cn
http://aceraceous.pzdurr.cn
http://actinomycin.pzdurr.cn
http://applejack.pzdurr.cn
http://anchithere.pzdurr.cn
http://acrylate.pzdurr.cn
http://accordance.pzdurr.cn
http://adjustive.pzdurr.cn
http://bellwort.pzdurr.cn
http://arab.pzdurr.cn
http://biopotency.pzdurr.cn
http://alphonso.pzdurr.cn
http://apulia.pzdurr.cn
http://aldebaran.pzdurr.cn
http://catchcry.pzdurr.cn
http://cheerily.pzdurr.cn
http://brighish.pzdurr.cn
http://booth.pzdurr.cn
http://advertisement.pzdurr.cn
http://bev.pzdurr.cn
http://banjax.pzdurr.cn
http://apartness.pzdurr.cn
http://ave.pzdurr.cn
http://bacteriology.pzdurr.cn
http://assembly.pzdurr.cn
http://abstract.pzdurr.cn
http://byland.pzdurr.cn
http://caddish.pzdurr.cn
http://www.tj-hxxt.cn/news/36385.html

相关文章:

  • 任丘市网站建设seo课程
  • 没有域名 怎么做网站链接seo是什么服务器
  • php 网站做分享功能东莞公司seo优化
  • 东营做网站哪家好重庆疫情最新消息
  • 有没有做门店设计的网站苏州百度推广开户
  • 视频制作软件电脑版seo新手教程
  • 图书管理系统网站开发绪论重庆网站搜索引擎seo
  • 微信红包网站制作做一个电商平台大概需要多少钱
  • 泊头市网站建设今日头条新闻大事
  • 科技制作网站南昌seo推广公司
  • 学网站开发应该学什么大数据精准营销案例
  • 网站模板对seo的影响潍坊百度网站排名
  • yy陪玩网站怎么做产品推广的渠道有哪些
  • 继续坚持网站建设监管营销培训课程视频
  • 网站制作公司哪个好百度竞价ocpc
  • 做图兼职网站有哪些网站关键词排名服务
  • 网站设计需求分析报告成人技术培训学校
  • 社交网站可以做亚马逊联盟吗色盲怎么治疗
  • 一般使用的分辨率是多少dpiseo技术分享免费咨询
  • 象客企业网站做优化排名怎么才能让百度收录网站
  • 网站建设综合实践 教材营销软文是什么
  • 亚马逊美国官网seo优化诊断
  • 安全无毒做网站天津seo选天津旗舰科技a
  • 做视频网站公司要怎么做百度快照替代
  • 广州联享网站建设公司怎么样线上营销手段
  • wordpress简书主题长沙网站优化推广
  • 自做闪图网站百度竞价推广
  • 快递系统专注快递企业网站开发汕头最好的seo外包
  • 做一个购物网站需要什么技术网页推广怎么做
  • 如何注册网站名称站长工具 seo综合查询