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

spark mllib 特征学习笔记 (一)

PySpark MLlib 特征处理详解

PySpark MLlib 提供了丰富的特征处理工具,帮助我们进行特征提取、转换和选择。以下是 PySpark MLlib 中常用的特征处理类及其简要介绍。

1. Binarizer

Binarizer 是将连续特征二值化的转换器。

from pyspark.ml.feature import Binarizerbinarizer = Binarizer(threshold=0.5, inputCol="feature", outputCol="binarized_feature")
binarizedData = binarizer.transform(data)

2. BucketedRandomProjectionLSH

BucketedRandomProjectionLSH 是基于欧几里得距离度量的 LSH 类。

from pyspark.ml.feature import BucketedRandomProjectionLSHbrp = BucketedRandomProjectionLSH(inputCol="features", outputCol="hashes", bucketLength=2.0)
model = brp.fit(data)
transformedData = model.transform(data)

3. Bucketizer

Bucketizer 将连续特征映射到特征桶。

from pyspark.ml.feature import Bucketizersplits = [-float("inf"), 0.0, float("inf")]
bucketizer = Bucketizer(splits=splits, inputCol="feature", outputCol="bucketed_feature")
bucketedData = bucketizer.transform(data)

4. ChiSqSelector

ChiSqSelector 是卡方特征选择器,选择预测分类标签的分类特征。

from pyspark.ml.feature import ChiSqSelectorselector = ChiSqSelector(numTopFeatures=50, featuresCol="features", labelCol="label", outputCol="selected_features")
result = selector.fit(data).transform(data)

5. CountVectorizer

CountVectorizer 从文档集合中提取词汇,并生成 CountVectorizerModel。

from pyspark.ml.feature import CountVectorizercv = CountVectorizer(inputCol="text", outputCol="features", vocabSize=10000, minDF=5)
model = cv.fit(data)
vectorizedData = model.transform(data)

6. DCT

DCT 是对实数向量进行一维离散余弦变换的特征转换器。

from pyspark.ml.feature import DCTdct = DCT(inverse=False, inputCol="features", outputCol="dct_features")
dctData = dct.transform(data)

7. ElementwiseProduct

ElementwiseProduct 对每个输入向量与提供的“权重”向量进行 Hadamard 乘积(即逐元素乘积)。

from pyspark.ml.feature import ElementwiseProduct
from pyspark.ml.linalg import VectorsscalingVec = Vectors.dense([0.0, 1.0, 2.0])
transformer = ElementwiseProduct(scalingVec=scalingVec, inputCol="features", outputCol="scaled_features")
scaledData = transformer.transform(data)

8. FeatureHasher

FeatureHasher 将一组分类或数值特征投影到指定维度的特征向量中。

from pyspark.ml.feature import FeatureHasherhasher = FeatureHasher(inputCols=["cat1", "cat2", "num1"], outputCol="features")
hashedData = hasher.transform(data)

9. HashingTF

HashingTF 使用哈希技巧将词序列映射到它们的词频。

from pyspark.ml.feature import HashingTFhashingTF = HashingTF(inputCol="text", outputCol="features", numFeatures=10000)
tfData = hashingTF.transform(data)

10. IDF

IDF 计算文档集合的逆文档频率(IDF)。

from pyspark.ml.feature import IDFidf = IDF(inputCol="raw_features", outputCol="features", minDocFreq=5)
model = idf.fit(tfData)
tfidfData = model.transform(tfData)

11. Imputer

Imputer 使用列中的均值、中位数或众数来填补缺失值。

from pyspark.ml.feature import Imputerimputer = Imputer(inputCols=["feature1", "feature2"], outputCols=["imputed_feature1", "imputed_feature2"])
model = imputer.fit(data)
imputedData = model.transform(data)

12. IndexToString

IndexToString 将索引列映射回相应的字符串值列。

from pyspark.ml.feature import IndexToStringconverter = IndexToString(inputCol="index", outputCol="string", labels=["a", "b", "c"])
convertedData = converter.transform(data)

13. Interaction

Interaction 实现特征交互转换。

from pyspark.ml.feature import Interactioninteraction = Interaction(inputCols=["col1", "col2"], outputCol="interacted_col")
interactedData = interaction.transform(data)

14. MaxAbsScaler

MaxAbsScaler 通过除以每个特征的最大绝对值来单独缩放每个特征到范围 [-1, 1]。

from pyspark.ml.feature import MaxAbsScalerscaler = MaxAbsScaler(inputCol="features", outputCol="scaled_features")
model = scaler.fit(data)
scaledData = model.transform(data)

15. MinHashLSH

MinHashLSH 是基于 Jaccard 距离的 LSH 类。

from pyspark.ml.feature import MinHashLSHmh = MinHashLSH(inputCol="features", outputCol="hashes", numHashTables=3)
model = mh.fit(data)
transformedData = model.transform(data)

16. MinMaxScaler

MinMaxScaler 使用列摘要统计数据,将每个特征单独线性缩放到 [min, max] 范围内,也称为最小-最大归一化或重缩放。

from pyspark.ml.feature import MinMaxScalerscaler = MinMaxScaler(inputCol="features", outputCol="scaled_features")
model = scaler.fit(data)
scaledData = model.transform(data)

17. NGram

NGram 是一个特征转换器,它将输入的字符串数组转换为 n-grams 数组。

from pyspark.ml.feature import NGramngram = NGram(n=2, inputCol="words", outputCol="ngrams")
ngramData = ngram.transform(data)

18. Normalizer

Normalizer 使用给定的 p-范数将向量规范化为单位范数。

from pyspark.ml.feature import Normalizernormalizer = Normalizer(p=1.0, inputCol="features", outputCol="norm_features")
normData = normalizer.transform(data)

19. OneHotEncoder

OneHotEncoder 将分类索引列映射到二进制向量列。

from pyspark.ml.feature import OneHotEncoderencoder = OneHotEncoder(inputCol="index", outputCol="onehot")
encodedData = encoder.transform(data)

20. PCA

PCA 训练一个模型,将向量投影到前 k 个主成分的低维空间中。

from pyspark.ml.feature import PCApca = PCA(k=3, inputCol="features", outputCol="pca_features")
model = pca.fit(data)
pcaData = model.transform(data)

21. PolynomialExpansion

PolynomialExpansion 在多项式空间中进行特征扩展。

from pyspark.ml.feature import PolynomialExpansionpolyExpansion = PolynomialExpansion(degree=2, inputCol="features", outputCol="poly_features")
polyData = polyExpansion.transform(data)

22. QuantileDiscretizer

QuantileDiscretizer 将连续特征列离散化为分类特征列。

from pyspark.ml.feature import QuantileDiscretizerdiscretizer = QuantileDiscretizer(numBuckets=3, inputCol="feature", outputCol="bucketed_feature")
bucketedData = discretizer.fit(data).transform(data)

23. RobustScaler

RobustScaler 移除中位数并根据四分位范围缩放数据。

from pyspark.ml.feature import RobustScalerscaler = RobustScaler(inputCol="features", outputCol="scaled_features")
model = scaler.fit(data)
scaledData = model.transform(data)

24. RegexTokenizer

RegexTokenizer 是一个基于正则表达式的分词器,可以使用提供的正则表达式模式(默认为分隔模式)提取标记,或反复匹配正则表达式(如果 gaps 为 false)。

from pyspark.ml.feature import RegexTokenizertokenizer = RegexTokenizer(inputCol="text", outputCol="words", pattern="\\W")
tokenizedData = tokenizer.transform(data)

25. RFormula

RFormula 实现了对数据集进行拟合所需的转换,使用 R 模型公式。

from pyspark.ml.feature import RFormulaformula = RFormula(formula="y ~ x1 + x2", featuresCol="features", labelCol="label")
formulaData = formula.fit(data).transform(data)

26. SQLTransformer

SQLTransformer 实现了由 SQL 语句定义的转换。

from pyspark.ml.feature import SQLTransformersqlTrans = SQLTransformer(statement="SELECT *, (col1 + col2) AS new_col FROM __THIS__")
transformedData = sqlTrans.transform(data)

27. StandardScaler

StandardScaler 使用训练集中的样本列摘要统计数据,通过去均值和按单位方差缩放来标准化特征。

from pyspark.ml.feature import StandardScalerscaler = StandardScaler(inputCol="features", outputCol="scaled_features", withMean=True, withStd=True)
model = scaler.fit(data)
scaledData = model.transform(data)

28. StopWordsRemover

StopWordsRemover 是一个特征转换器,用于从输入中过滤停用词。

from pyspark.ml.feature import StopWordsRemoverremover = StopWordsRemover(inputCol="raw", outputCol="filtered")
filteredData = remover.transform(data)

29. StringIndexer

StringIndexer 是一个标签索引器,将字符串标签列映射到标签索引列。

from pyspark.ml.feature import StringIndexerindexer = StringIndexer(inputCol="category", outputCol="categoryIndex")
indexedData = indexer.fit(data).transform(data)

30. Tokenizer

Tokenizer 是一个分词器,将输入字符串转换为小写,然后按空格拆分。

from pyspark.ml.feature import Tokenizertokenizer = Tokenizer(inputCol="text", outputCol="words")
tokenizedData = tokenizer.transform(data)

31. UnivariateFeatureSelector

UnivariateFeatureSelector 基于单变量统计测试选择特征。

from pyspark.ml.feature import UnivariateFeatureSelectorselector = UnivariateFeatureSelector(featuresCol="features", labelCol="label", selectionMode="numTopFeatures", selectionThreshold=50)
selectedData = selector.fit(data).transform(data)

32. VarianceThresholdSelector

VarianceThresholdSelector 删除所有低方差特征的特征选择器。

from pyspark.ml.feature import VarianceThresholdSelectorselector = VarianceThresholdSelector(featuresCol="features", varianceThreshold=0.1, outputCol="selected_features")
selectedData = selector.fit(data).transform(data)

33. VectorAssembler

VectorAssembler 是一个特征转换器,将多个列合并为一个向量列。

from pyspark.ml.feature import VectorAssemblerassembler = VectorAssembler(inputCols=["col1", "col2", "col3"], outputCol="features")
assembledData = assembler.transform(data)

34. VectorIndexer

VectorIndexer 是用于对数据集中 Vector 的分类特征列进行索引的类。

from pyspark.ml.feature import VectorIndexerindexer = VectorIndexer(inputCol="features", outputCol="indexed_features", maxCategories=10)
indexerModel = indexer.fit(data)
indexedData = indexerModel.transform(data)

35. VectorSizeHint

VectorSizeHint 是一个特征转换器,向向量列的元数据添加大小信息。

from pyspark.ml.feature import VectorSizeHintsizeHint = VectorSizeHint(inputCol="features", size=3)
hintedData = sizeHint.transform(data)

36. VectorSlicer

VectorSlicer 是一个类,接收一个特征向量,并输出一个新的特征向量,其中包含原始特征的子数组。

from pyspark.ml.feature import VectorSlicerslicer = VectorSlicer(inputCol="features", outputCol="sliced_features", indices=[1, 2])
slicedData = slicer.transform(data)

37. Word2Vec

Word2Vec 训练一个 Map(String, Vector) 的模型,即将字词映射到向量。

from pyspark.ml.feature import Word2Vecword2Vec = Word2Vec(inputCol="text", outputCol="result", vectorSize=3, minCount=0)
model = word2Vec.fit(data)
resultData = model.transform(data)

以下是 PySpark MLlib 中部分特征处理方法的详细介绍,包括它们所基于的公式、适用的场景以及一些具体的应用案例。

1. Binarizer

公式
Binarizer ( x ) = { 1 if  x > threshold 0 otherwise \text{Binarizer}(x) = \begin{cases} 1 & \text{if } x > \text{threshold} \\ 0 & \text{otherwise} \end{cases} Binarizer(x)={10if x>thresholdotherwise

适用场景
用于将连续特征转换为二值特征,常用于分类问题中将数值特征转换为二进制特征。

案例

from pyspark.ml.feature import Binarizerdata = spark.createDataFrame([(0.1,), (0.8,), (0.5,)], ["feature"])
binarizer = Binarizer(threshold=0.5, inputCol="feature", outputCol="binarized_feature")
binarizedData = binarizer.transform(data)
binarizedData.show()

2. Bucketizer

公式
将连续特征分成离散的桶,例如使用指定的分割点将特征值分段:
Bucketizer ( x ) = { 0 if  x ≤ splits [ 1 ] 1 if splits [ 1 ] < x ≤ splits [ 2 ] ⋮ ⋮ N − 1 if  x > splits [ N − 1 ] \text{Bucketizer}(x) = \begin{cases} 0 & \text{if } x \leq \text{splits}[1] \\ 1 & \text{if } \text{splits}[1] < x \leq \text{splits}[2] \\ \vdots & \vdots \\ N-1 & \text{if } x > \text{splits}[N-1] \end{cases} Bucketizer(x)= 01N1if xsplits[1]if splits[1]<xsplits[2]if x>splits[N1]

适用场景
用于将连续特征转换为离散的分桶特征,常用于决策树等算法中。

案例

from pyspark.ml.feature import Bucketizerdata = spark.createDataFrame([(0.1,), (0.8,), (0.5,)], ["feature"])
splits = [-float("inf"), 0.5, float("inf")]
bucketizer = Bucketizer(splits=splits, inputCol="feature", outputCol="bucketed_feature")
bucketedData = bucketizer.transform(data)
bucketedData.show()

3. ChiSqSelector

公式
根据卡方检验的统计量选择特征:
χ 2 = ∑ ( O i − E i ) 2 E i \chi^2 = \sum \frac{(O_i - E_i)^2}{E_i} χ2=Ei(OiEi)2
其中 (O_i) 是观察频数,(E_i) 是期望频数。

适用场景
用于特征选择,特别是用于分类问题中的分类特征选择。

案例

from pyspark.ml.feature import ChiSqSelector
from pyspark.ml.linalg import Vectorsdata = spark.createDataFrame([(Vectors.dense([0.0, 0.5, 0.5]), 1.0),(Vectors.dense([0.1, 0.8, 0.2]), 0.0),(Vectors.dense([0.2, 0.9, 0.1]), 0.0)
], ["features", "label"])selector = ChiSqSelector(numTopFeatures=2, featuresCol="features", labelCol="label", outputCol="selected_features")
result = selector.fit(data).transform(data)
result.show()

4. CountVectorizer

公式
计算词汇表并生成词频向量:
CountVectorizer ( D ) = [ TF ( t 1 , D ) , TF ( t 2 , D ) , … , TF ( t n , D ) ] \text{CountVectorizer}(D) = [ \text{TF}(t_1, D), \text{TF}(t_2, D), \ldots, \text{TF}(t_n, D) ] CountVectorizer(D)=[TF(t1,D),TF(t2,D),,TF(tn,D)]
其中 (\text{TF}(t_i, D)) 是词 (t_i) 在文档 (D) 中的词频。

适用场景
用于文本数据的词频特征提取,常用于自然语言处理和文本分类任务。

案例

from pyspark.ml.feature import CountVectorizerdata = spark.createDataFrame([(0, "a b c".split(" ")), (1, "a b b c a".split(" "))], ["id", "words"])
cv = CountVectorizer(inputCol="words", outputCol="features", vocabSize=3, minDF=1)
model = cv.fit(data)
vectorizedData = model.transform(data)
vectorizedData.show()

5. DCT

公式
离散余弦变换 (DCT):
X k = ∑ n = 0 N − 1 x n cos ⁡ [ π N ( n + 1 2 ) k ] X_k = \sum_{n=0}^{N-1} x_n \cos \left[ \frac{\pi}{N} \left( n + \frac{1}{2} \right) k \right] Xk=n=0N1xncos[Nπ(n+21)k]

适用场景
用于信号处理中的特征转换,如图像处理和压缩。

案例

from pyspark.ml.feature import DCT
from pyspark.ml.linalg import Vectorsdata = spark.createDataFrame([(Vectors.dense([0.0, 1.0, -2.0, 3.0]),)], ["features"])
dct = DCT(inverse=False, inputCol="features", outputCol="dct_features")
dctData = dct.transform(data)
dctData.show()

6. Imputer

公式
缺失值填充,使用均值、中位数或众数填充:
Imputer ( x ) = { x if  x ≠ NaN mean/median/mode ( X ) if  x = NaN \text{Imputer}(x) = \begin{cases} x & \text{if } x \neq \text{NaN} \\ \text{mean/median/mode}(X) & \text{if } x = \text{NaN} \end{cases} Imputer(x)={xmean/median/mode(X)if x=NaNif x=NaN

适用场景
用于处理数据集中的缺失值。

案例

from pyspark.ml.feature import Imputerdata = spark.createDataFrame([(1.0, float("nan")), (2.0, 3.0), (float("nan"), 4.0)], ["a", "b"])
imputer = Imputer(inputCols=["a", "b"], outputCols=["imputed_a", "imputed_b"])
model = imputer.fit(data)
imputedData = model.transform(data)
imputedData.show()

7. OneHotEncoder

公式
将分类特征转换为独热编码向量:
OneHotEncoder ( x ) = [ 0 , … , 1 , … , 0 ] \text{OneHotEncoder}(x) = [0, \ldots, 1, \ldots, 0] OneHotEncoder(x)=[0,,1,,0]
其中1出现在类别索引位置。

适用场景
用于将分类特征转换为机器学习算法可以直接使用的数值特征。

案例

from pyspark.ml.feature import OneHotEncoder, StringIndexerdata = spark.createDataFrame([("a",), ("b",), ("a",)], ["category"])
indexer = StringIndexer(inputCol="category", outputCol="categoryIndex")
indexed = indexer.fit(data).transform(data)
encoder = OneHotEncoder(inputCol="categoryIndex", outputCol="categoryVec")
encoded = encoder.fit(indexed).transform(indexed)
encoded.show()

8. PCA

公式
主成分分析 (PCA):
X = T P T \mathbf{X} = \mathbf{T} \mathbf{P}^T X=TPT
其中 (\mathbf{T}) 是得分矩阵,(\mathbf{P}) 是载荷矩阵。

适用场景
用于降维,提取主要特征,减少数据集的维度。

案例

from pyspark.ml.feature import PCA
from pyspark.ml.linalg import Vectorsdata = spark.createDataFrame([(Vectors.dense([1.0, 0.0, 0.0]),), (Vectors.dense([0.0, 1.0, 0.0]),), (Vectors.dense([0.0, 0.0, 1.0]),)], ["features"])
pca = PCA(k=2, inputCol="features", outputCol="pca_features")
model = pca.fit(data)
pcaData = model.transform(data)
pcaData.show()

9. StandardScaler

公式
标准化特征,去均值并按标准差缩放:
StandardScaler ( x ) = x − mean ( x ) std ( x ) \text{StandardScaler}(x) = \frac{x - \text{mean}(x)}{\text{std}(x)} StandardScaler(x)=std(x)xmean(x)

适用场景
用于特征标准化,使不同特征具有相同的尺度,适用于大多数机器学习算法。

案例

from pyspark.ml.feature import StandardScaler
from pyspark.ml.linalg import Vectorsdata = spark.createDataFrame([(Vectors.dense([1.0, 0.1, -1.0]),), (Vectors.dense([2.0, 1.1, 1.0]),), (Vectors.dense([4.0, 10.1, 2.0]),)], ["features"])
scaler = StandardScaler(inputCol="features", outputCol="scaled_features", withMean=True, withStd=True)
model = scaler.fit(data)
scaledData = model.transform(data)
scaledData.show()
``
## 总结PySpark MLlib 中的特征处理工具丰富且功能强大,可以帮助我们在数据预处理阶段完成各种特征工程任务。这些工具覆盖了特征的二值化、离散化、标准化、归一化、编码、转换、选择和生成等多个方面,是数据科学家和工程师进行机器学习模型训练的重要帮手。通过合理使用这些工具,可以极大提升模型的性能和效果。

相关文章:

spark mllib 特征学习笔记 (一)

PySpark MLlib 特征处理详解 PySpark MLlib 提供了丰富的特征处理工具&#xff0c;帮助我们进行特征提取、转换和选择。以下是 PySpark MLlib 中常用的特征处理类及其简要介绍。 1. Binarizer Binarizer 是将连续特征二值化的转换器。 from pyspark.ml.feature import Bina…...

SQLite 日期 时间

SQLite 日期 & 时间 SQLite 是一种轻量级的数据库管理系统&#xff0c;广泛用于各种应用程序中。它支持标准的 SQL 语法&#xff0c;包括对日期和时间的处理。在 SQLite 中&#xff0c;日期和时间可以通过几种不同的方式来存储和操作。 日期和时间数据类型 SQLite 使用 …...

飞书API 2-1:如何通过 API 创建文件夹?

本文探讨如何通过飞书的 API 来创建文件夹。通过 API 创建的文件夹&#xff0c;一般是放在共享空间&#xff0c;如果要放在个人空间&#xff0c;建议手动创建。 查看 API 文档 API 路径&#xff0c;可在飞书开放平台的服务端 API&#xff0c;依次查找云文档>云空间>文件…...

【APP移动端自动化测试】第一节.环境配置和adb调试工具

文章目录 前言一、Java环境搭建二、AndroidSDK环境搭建三、Android模拟器安装四、adb调试工具基本介绍 4.1 adb构成和基本原理 4.2 adb获取包名&#xff0c;界面名 4.3 adb文件传输 4.4 adb获取app启动时间 4.5 adb获取手机日志 4.6 adb其他有关…...

Kotlin 协程:从基础概念到开发实践

前言 上一篇文章 深入理解Android多线程开发:场景应用与解决方案解析 针对Android开发中的多线程应用场景和相应的解决方案做了一个梳理。 总结出了Android开发中多线程编程的几个重要点: 资源复用和优化切线程任务编排并结合示例说明了Kotlin协程在处理上述问题时的优势。 …...

IPNV6

特征——升级点&#xff1a; 1、全球单播地址 ----IPV4地址下的公有地址 V6下没 nat 2、可聚合性 (IANA组织对全球的地址进行合理分配) 3、多宿主——一个物理接口可以同时拥有多个不同网段的IPV6地址&#xff1b;但不同接口不能在同一网段 4、自动配置 1&#xff…...

C++并发之锁(std::lock_guard,std::unique_lock)

目录 1 概述2 使用实例3 接口使用3.1 lock_guard3.2 adopt_lock3.3 defer_lock3.4 try_to_lock3.5 try_lock3.6 release3.7 lock3.8 call_one1 概述 锁保护是通过使互斥对象始终处于锁定状态来管理互斥对象的对象。。   在构造时,互斥对象被调用线程锁定,在析构时,互斥被解…...

FreeRTOS队列(queue)

队列(queue)可以用于"任务到任务"、 "任务到中断"、 "中断到任务"直接传输信息。 1、队列的特性 1、1常规操作 队列的简化操如下图所示&#xff0c;从此图可知&#xff1a; 队列中可以包含若干数据&#xff1a;队列中有若干项&#xff0c;这…...

Azure数据分析Power BI

Azure数据分析Power BI 一、Power BI简介二、Power BI 如何匹配角色三、Power BI 构建基块四、使用 Power BI 服务一、Power BI简介 Microsoft Power BI 是一系列的软件服务、应用和连接器,这些软件服务、应用和连接器协同工作,将不相关的数据源转化为合乎逻辑、视觉上逼真的…...

将 Python3 程序打包成 APK 并运行在 ARM 的 Android 系统中

作为一个开发者&#xff0c;我们经常需要将我们的 Python 程序部署到移动端&#xff0c;以便更好地服务于用户。然而&#xff0c;直接在 Android 系统上运行 Python 程序却存在一定的挑战&#xff0c;因为 Android 系统默认不支持 Python。这篇文章将介绍如何将 Python3 程序打…...

学习记录:VS2019+OpenCV3.4.1实现SURF库函数的调用

最近在学习opencv的使用&#xff0c;在参照书籍《OpenCV3编程入门》实现SURF时遇到不少问题&#xff0c;下面做归纳总结。 错误 LNK2019 无法解析的外部符号 “public: static struct cv::Ptr __cdecl cv::xfeatures2d::SURF::create(double,int,int,bool,bool)” (?createSUR…...

JVM-基础知识

JVM-基础知识 什么是JVM JVM是一种跨语言的平台&#xff0c;任何语言只要能编译成.class文件都可以被JVM运行。JVM只和.class文件有关系&#xff0c;和Java语言没关系。JVM是一种虚拟机规范。 java文件是如何交给JVM执行的 JVM的常见实现 HostStop:Oracle官方另外还有IBM的J9、…...

保密工作应党而生、伴党而行、为党而兴

1.&#xff08;C &#xff09;工作应党而生、伴党而行、为党而兴&#xff0c;始终是党和国家的一项重要工作。 A. 农业 B. 国防 C. 保密 D. 文化 2.机关、单位对所产生的国家秘密事项&#xff0c;应当按照国家秘密及其密级的具体范围的规定确定密级&#xff0c;同时确定&#x…...

docker login 报错: http: server gave HTTP response to HTTPS client

环境&#xff1a; 自建 Harbor、Docker 1. 问题分析 # 命令&#xff0c;这里用的是 IP&#xff0c;可以为域名 docker login -u test 172.16.51.182:31120 # 输入密码 Password:# 报错如下&#xff1a; Error response from daemon: Get "https://172.16.51.182:31120/…...

「C系列」C 文件读写

文章目录 一、C 文件读写1. 打开文件2. 写入文件3. 读取文件4. 关闭文件5. 文件读写模式6. 错误处理 二、常见问题1. 文件打开失败2. 文件读写错误3. 文件读写位置4. 缓冲区刷新 三、相关链接 一、C 文件读写 在C语言中&#xff0c;文件读写是通过一系列的标准库函数来完成的&…...

编程中的cos:深度解析与应用探索

编程中的cos&#xff1a;深度解析与应用探索 在编程的广阔天地中&#xff0c;cos这一数学概念扮演着举足轻重的角色。它不仅是数学函数库中的基础元素&#xff0c;更是图形渲染、科学计算以及数据处理等多个领域的核心工具。本文将从四个方面、五个方面、六个方面和七个方面&a…...

计算机毕业设计hadoop+spark+hive知识图谱酒店推荐系统 酒店数据分析可视化大屏 酒店爬虫 高德地图API 酒店预测系统 大数据毕业设计

流程&#xff1a; 1.Python爬取去哪儿网全站旅游数据约10万&#xff0c;存入mysql; 2.使用pandasnumpy/hadoopmapreduce对mysql中旅游数据进行数据清洗&#xff0c;使用高德API计算地理信息&#xff0c;最终转为.csv文件上传hdfs; 3.hive建库建表导入.csv文件作为数据集&#x…...

简单谈谈云服务器私网IP的存在意义及优势

云服务器是基于虚拟化技术的计算资源&#xff0c;可以在云平台上灵活创建和管理。为了满足不同用户的需求&#xff0c;云服务提供商在云服务器上分配了两种类型的IP地址&#xff1a;公网IP和私网IP。其中&#xff0c;私网IP是指在局域网内使用的内部IP地址&#xff0c;无法通过…...

python错题(2)

、...

禁止methtype联网

mathtype断网_如何禁止mathtype联网-CSDN博客https://blog.csdn.net/qq_41060221/article/details/128144783...

【iOS】UI学习——cell的复用及自定义cell

目录 前言cell的复用手动&#xff08;非注册&#xff09;自动&#xff08;注册&#xff09; 自定义cell总结 前言 Cell复用和自定义Cell是在开发iOS应用时常见的一种优化技巧和定制需求。   Cell复用是UITableView或UICollectionView的一个重要优化机制。当用户滚动这些视图时…...

【详细介绍下PostgreSQL】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…...

基于Matlab停车场车牌识别计时计费管理系统 【W2】

简介 停车场车牌识别计时计费管理系统在现代城市管理中具有重要意义。随着城市化进程的加快和车辆数量的增加&#xff0c;传统的人工管理停车场的方式已经难以满足效率和精确度的要求。因此引入车牌识别技术的自动化管理系统成为一种趋势和解决方案。 背景意义 提升管理效率&a…...

码住!详解时序数据库不同分类与性能对比

加速发展中的时序数据库&#xff0c;基于不同架构&#xff0c;最流行的类别是&#xff1f; 作为管理工业场景时序数据的新兴数据库品类&#xff0c;时序数据库凭借着对海量时序数据的高效存储、高可扩展性、时序分析计算等特性&#xff0c;一跃成为物联网时代工业领域颇受欢迎的…...

【C/C++】实参与形参的区别

在编程中&#xff0c;形参&#xff08;形式参数&#xff09;和实参&#xff08;实际参数&#xff09;是函数调用中的两个基本概念&#xff0c;它们在函数定义和函数调用中扮演着不同的角色。 形参&#xff08;Formal Parameters&#xff09;&#xff1a; 形参是在函数定义时声明…...

---异常---

我们在运行程序时总遇到各种与报错&#xff0c;数组越界&#xff0c;空指针的引用&#xff0c;这些在java中都称为异常 对于不同的错误都具有一个与他对应的异常类来秒描述 这是对于数组越界这个类里有的方法&#xff0c;这些是描述异常的 在java中有一个完整的描述异常的类的…...

python如何终止程序运行

方法1&#xff1a;采用sys.exit(0)&#xff0c;正常终止程序&#xff0c;从图中可以看到&#xff0c;程序终止后shell运行不受影响。 方法2&#xff1a;采用os._exit(0)关闭整个shell&#xff0c;从图中看到&#xff0c;调用sys._exit(0)后整个shell都重启了&#xff08;RESTAR…...

网络:用2个IP地址描述一个连接

用2个IP地址描述一个连接。这是在阅读了《TCP/IP指南》后的感想&#xff0c;与工业标准不同&#xff0c;需注意区分。 如果一个IP地址有48位&#xff0c;则用96位描述一个连接 对于单播&#xff0c;是每个IP分别描述位置。位置包括&#xff1a;邮局编号主机编号&#xff0c;采用…...

Nodejs--构建web应用

构建web应用 将从http模块中的服务器端中的request使劲按开始分析&#xff0c;request时间发生于网络连接建立&#xff0c;客户端想服务器发送报文&#xff0c;服务器解析报文&#xff0c;发现http请求的报文的时候&#xff0c;在出发request事件之前&#xff0c;已经准备好Se…...

C++ 二分查找法【面试】

在C中实现二分查找法是一个常见的面试问题。二分查找法是一种在有序数组中查找特定元素的算法&#xff0c;其时间复杂度为O(log n)。以下是使用C实现二分查找的示例代码&#xff1a; #include <iostream> #include <vector>// 二分查找法函数 int binarySearch(co…...

商业设计说明/杭州seo网站

题面描述了一种加密的方式&#xff0c;让coder按照要求解密~ 将字母分成三段&#xff0c;再将位置用数组储存~所谓的旋转其实就是右移~ #include"cstdio" #include"iostream" #include"cstring" using namespace std; int main() { int k1,k2,…...

大名网站建设电话/邯郸seo优化公司

项⽬描述 汽⻋租赁管理系统&#xff0c;管理系统中不仅有客户的管理还有⻋辆租赁的管理&#xff0c;租赁⻋辆公司对于租⻋的流程&#xff0c;租⻋过程的问题&#xff0c;对于客户的维护及不同维度统计租⻋的情况做数据化管理&#xff0c;⽅便租⻋公司更好的维护⻋辆和⻋辆的信…...

滑县网站建设服务/电子商务与网络营销教案

面向对象 &#xff1a; 就是一种编程思想&#xff0c;是把构成问题事务分解成各个对象&#xff0c;建立对象的目的不是为了完成一个步骤&#xff0c;而是为了描叙某个事物在整个解决问题的步骤中的行为。 如我要造辆车&#xff1a; Step1. 设计画图>保时捷设计所 Step2. 原…...

wordpress+获得子类id/2023新闻大事件摘抄

有人说改系统配置文件&#xff0c;虽说对geek们没啥&#xff0c;但是有一个更方便的方法&#xff0c;更好记。只需记住一个软件&#xff1a; GNOME Color Chooser。 安装完这个软件之后&#xff0c;选择Specific标签&#xff0c;更改Tooltips中的前景色&#xff08;字体颜色&…...

免费建站的/seo是什么软件

阅读目录 Array转ArrayList 判断一个数组是否包含某个值 在循环内部删除List中的一个元素 HashTable与HashMap 使用集合原始类型&#xff08;raw type&#xff09; 访问级别 ArrayList和LinkedList 可变与不可变 父类和子类的构造方法 “”还是构造方法 未来工作 这个列表总…...

怎么用腾讯云主机建设网站/百度seo策略

MySQL数据库安装配置和启动 1&#xff0c;下载MySQL 打开MySQL的官网www.mysql.com&#xff0c;发现有一个DOWNLOADS 点击它&#xff0c;进入到MySQL的下载页面&#xff0c;在页面的底部有一个MySQL Community Edition&#xff0c; 并且下面有一个蓝色的链接 点击这个蓝色的链接…...