Difference between VectorSize in word2Vec and numFeatures in TF-IDF
They're both the dimensionality of the representation, but the values will be in different ranges and useful in different ways.
In Word2Vec, each word gets a vector of vectorSize dimensions - where each dimension is a floating-point number (rather than a whole number). The values will be both positive and negative, and essentially never zero. Thus all words have coordinates in a fuzzy 'cloud' of space around the origin point.
Thus a word2vec vector is considered a 'dense embedding' of the word: it represents the word into a smaller vector space ('embeds' it) in a way where every dimension varies and holds some of the info ('dense'). As a result, all (100 in your example) dimensions will be used to represent any one item (word).
In HashingTF (which probably stands for 'hashing term frequency' or 'hashing trick frequency'), a text document of many words gets a vector of numFeatures dimensions - where each dimension is a non-negative integer count of how many times certain words appear in the document.
By using a technique called the 'hashing trick', it ensures any word, whether seen before or not, is assigned (by a hash value) to one of a fixed-set of counting buckets. The value of each dimension in the vector is the count of the words assigned to one bucket. In typical cases, many if not nearly-all of the buckets will be empty – and thus have zero values in the corresponding dimensions.
Thus a HashingTF vector is considered a 'sparse embedding' of a document: it represents the document into a smaller vector sapce ('embeds' it) in a way where most dimensions often stay zero, but a small relevant subset of dimensions become nonzero ('sparse'). As a result, the (262,144 in your example) dimensions might only be represented by a short list of which dimensions are non-zero and their value.
What is the difference between vectorSize in Word2Vec and numFeatures in HashingTF? I refer to class Word2Vec and HashingTF in pyspark:
WORD2VEC: class pyspark.ml.feature.Word2Vec(*, vectorSize=100, minCount=5, numPartitions=1, stepSize=0.025, maxIter=1, seed=None, inputCol=None, outputCol=None, windowSize=5, maxSentenceLength=1000)
HashingTF:  class pyspark.ml.feature.HashingTF(*, numFeatures=262144, binary=False, inputCol=None, outputCol=None)