当前位置: 首页 > 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...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

Keil 中设置 STM32 Flash 和 RAM 地址详解

文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

32位寻址与64位寻址

32位寻址与64位寻址 32位寻址是什么&#xff1f; 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元&#xff08;地址&#xff09;&#xff0c;其核心含义与能力如下&#xff1a; 1. 核心定义 地址位宽&#xff1a;CPU或内存控制器用32位…...

Electron简介(附电子书学习资料)

一、什么是Electron&#xff1f; Electron 是一个由 GitHub 开发的 开源框架&#xff0c;允许开发者使用 Web技术&#xff08;HTML、CSS、JavaScript&#xff09; 构建跨平台的桌面应用程序&#xff08;Windows、macOS、Linux&#xff09;。它将 Chromium浏览器内核 和 Node.j…...